#include <bits/stdc++.h>
using namespace std;
vector<int> g[100500];
pair<int, int> dfs(int v, int p = -1) {
  pair<int, int> res = {0, v};
  for (int to : g[v])
    if (to != p) {
      auto r = dfs(to, v);
      ++r.first;
      res = max(res, r);
    }
  return res;
}
int dfs2(int v, int p, int want) {
  if (v == want) return 0;
  for (int to : g[v])
    if (to != p) {
      int res = dfs2(to, v, want);
      if (res >= 0) return 1 + res;
    }
  return -1;
}
void solve() {
  int n, A, B, da, db;
  scanf("%d", &n);
  scanf("%d %d", &A, &B);
  scanf("%d %d", &da, &db);
  --A;
  --B;
  int a, b;
  for (int i = (1); i < (n); ++i) {
    scanf("%d %d", &a, &b);
    --a;
    --b;
    g[a].push_back(b);
    g[b].push_back(a);
  }
  int d = dfs(dfs(0).second).first;
  if (dfs2(A, -1, B) <= da) {
    puts("Alice");
  } else {
    db = min(d, db);
    puts(db > 2 * da ? "Bob" : "Alice");
  }
  for (int i = (0); i < (n); ++i) g[i].clear();
}
int main() {
  int tc;
  scanf("%d", &tc);
  while (tc--) solve();
}
