#include <bits/stdc++.h>
using namespace std;
vector<long long int> adj[100001];
long long int depth[100001], diam;
long long int dfs(long long int x, long long int p) {
  long long int len = 0;
  for (long long int y : adj[x]) {
    if (y != p) {
      depth[y] = depth[x] + 1;
      long long int cur = 1 + dfs(y, x);
      diam = max(diam, cur + len);
      len = max(len, cur);
    }
  }
  return len;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int tt = 1;
  cin >> tt;
  while (tt--) {
    long long int n, a, b, da, db;
    cin >> n >> a >> b >> da >> db;
    for (long long int i = 0; i <= n; i++) adj[i].clear();
    for (long long int i = 0; i < n - 1; i++) {
      long long int u, v;
      cin >> u >> v;
      adj[u].push_back(v);
      adj[v].push_back(u);
    }
    depth[a] = 0;
    diam = 0;
    dfs(a, -1);
    if (depth[b] <= da)
      cout << "Alice\n";
    else if (2 * da >= diam)
      cout << "Alice\n";
    else if (db > 2 * da)
      cout << "Bob\n";
    else if (db <= 2 * da)
      cout << "Alice\n";
  }
}
