#include <bits/stdc++.h>
using namespace std;
int n, a, b, da, db;
vector<int> G[100005];
int d[100004], mx;
int dfs(int u, int fa, int ans) {
  int mx1, mx2;
  mx1 = mx2 = 0;
  d[u] = ans;
  for (int i : G[u]) {
    if (i == fa) continue;
    int t = dfs(i, u, ans + 1) + 1;
    if (t >= mx1) {
      mx2 = mx1;
      mx1 = t;
    } else if (t > mx2)
      mx2 = t;
  }
  mx = max(mx, mx1 + mx2);
  return mx1;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    cin >> n >> a >> b >> da >> db;
    for (int i = 1; i <= n; i++) G[i].clear();
    for (int i = 1; i < n; i++) {
      int x, y;
      cin >> x >> y;
      G[x].push_back(y);
      G[y].push_back(x);
    }
    mx = 0;
    dfs(a, 0, 0);
    if (da * 2 >= db || d[b] <= da || mx <= da * 2)
      cout << "Alice";
    else
      cout << "Bob";
    cout << endl;
  }
  return 0;
}
