#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int MAXN = 1e5 + 69;
int n, x, y, a, b, far[MAXN], diam;
vector<int> ed[MAXN];
int dfs(int i, int p) {
  int mx = 0;
  for (int k : ed[i]) {
    if (k != p) {
      far[k] = far[i] + 1;
      int go = 1 + dfs(k, i);
      diam = max(diam, go + mx);
      mx = max(mx, go);
    }
  }
  return mx;
}
void solve() {
  cin >> n >> x >> y >> a >> b;
  memset(far, 0, sizeof(far));
  diam = 0;
  for (int i = 1; i <= n; i++) ed[i].clear();
  for (int i = 0; i < n - 1; i++) {
    int c, d;
    cin >> c >> d;
    ed[c].push_back(d);
    ed[d].push_back(c);
  }
  far[x] = 0;
  dfs(x, -1);
  if (far[y] <= a || min(diam, b) <= 2 * a)
    cout << "Alice\n";
  else
    cout << "Bob\n";
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int t;
  cin >> t;
  while (t--) solve();
}
