#include <bits/stdc++.h>
using namespace std;
long long int n, a, b, da, db, mx, mi, t, s;
vector<long long int> v[100009];
bool vis[100009];
void dfs(long long int m) {
  vis[m] = true;
  if (t > mx) {
    mx = t;
    mi = m;
  }
  if (m == b) s = t;
  for (long long int i = 0; i < v[m].size(); i++) {
    if (!vis[v[m][i]]) {
      t++;
      dfs(v[m][i]);
      t--;
    }
  }
}
int main() {
  long long int q;
  cin >> q;
  while (q--) {
    scanf("%lld%lld%lld%lld%lld", &n, &a, &b, &da, &db);
    for (long long int i = 0; i <= n; i++) v[i].clear();
    memset(vis, false, sizeof(vis));
    t = 0;
    s = 0;
    mx = 0;
    mi = 1;
    long long int g, h;
    for (long long int i = 0; i < n - 1; i++) {
      scanf("%lld%lld", &g, &h);
      v[g].push_back(h);
      v[h].push_back(g);
    }
    dfs(a);
    long long int u;
    (s > da) ? u = 0 : u = 1;
    memset(vis, false, sizeof(vis));
    t = 0;
    mx = 0;
    dfs(mi);
    mx++;
    (u == 0 && ((mx >= da + da + 2) && (db >= da + da + 1)))
        ? cout << "Bob\n"
        : cout << "Alice\n";
  }
}
