#include <bits/stdc++.h>
using namespace std;
int tot = 0, n, a, b, da, db, t[100005 << 1], nxt[100005 << 1], hd[100005],
    dis[100005];
inline void add(int u, int v) {
  t[++tot] = v;
  nxt[tot] = hd[u];
  hd[u] = tot;
}
inline pair<int, int> dfs(int u, int fa) {
  int v;
  pair<int, int> gt, ret;
  ret.second = u;
  for (int i = hd[u]; i; i = nxt[i]) {
    v = t[i];
    if (v == fa) continue;
    dis[v] = dis[u] + 1;
    gt = dfs(v, u);
    ++gt.first;
    if (gt.first > ret.first) {
      ret.first = gt.first;
      ret.second = gt.second;
    }
  }
  return ret;
}
int main() {
  int T;
  pair<int, int> d1, d2;
  scanf("%d", &T);
  while (T--) {
    scanf("%d%d%d%d%d", &n, &a, &b, &da, &db);
    for (int i = 1; i <= n; ++i) hd[i] = 0;
    for (int i = 1; i < n; ++i) {
      int u, v;
      scanf("%d%d", &u, &v);
      add(u, v);
      add(v, u);
    }
    dis[a] = 0;
    d1 = dfs(a, 0);
    if (dis[b] <= da) {
      puts("Alice");
      continue;
    }
    d2 = dfs(d1.second, 0);
    if (d2.first <= da * 2) {
      puts("Alice");
      continue;
    }
    if (db <= da * 2) {
      puts("Alice");
      continue;
    }
    puts("Bob");
  }
  return 0;
}
