#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 100;
vector<int> edg[N];
int lv[N], imax, sum[N];
void dfs(int s, int fa) {
  int a = 0, b = 0;
  for (auto e : edg[s]) {
    if (e == fa) continue;
    lv[e] = lv[s] + 1;
    dfs(e, s);
    if (a < sum[e])
      b = a, a = sum[e];
    else
      b = max(b, sum[e]);
  }
  sum[s] = a + 1;
  imax = max(imax, a + b);
}
int main() {
  int T, n, x, y, dx, dy;
  cin >> T;
  while (T--) {
    cin >> n >> x >> y >> dx >> dy;
    imax = 0;
    for (int i = 0; i <= n; i++) edg[i].clear(), lv[i] = 0;
    for (int i = 1; i < n; i++) {
      int s, e;
      cin >> s >> e;
      edg[s].push_back(e);
      edg[e].push_back(s);
    }
    dfs(x, 0);
    int ans = 0;
    if (lv[y] <= dx) ans = 1;
    if (imax <= 2 * dx) ans = 1;
    if (dy <= 2 * dx) ans = 1;
    if (ans)
      cout << "Alice" << endl;
    else
      cout << "Bob" << endl;
  }
  return 0;
}
