#include <bits/stdc++.h>
using namespace std;
void dfs(int u, int par, vector<vector<int> > &G, vector<int> &D) {
  for (auto v : G[u]) {
    if (v != par) {
      D[v] = D[u] + 1;
      dfs(v, u, G, D);
    }
  }
}
void solve() {
  int n, a, b, da, db;
  cin >> n >> a >> b >> da >> db;
  vector<vector<int> > G(n);
  for (int i = 0; i < n - 1; i++) {
    int u, v;
    cin >> u >> v;
    u--;
    v--;
    G[u].push_back(v);
    G[v].push_back(u);
  }
  a--, b--;
  vector<int> D1(n), D2(n);
  dfs(a, -1, G, D1);
  dfs(max_element((D1).begin(), (D1).end()) - D1.begin(), -1, G, D2);
  int ab = D1[b], diam = *max_element((D2).begin(), (D2).end());
  if (ab <= da || 2 * da >= diam || 2 * da >= db) {
    cout << "Alice\n";
  } else {
    cout << "Bob\n";
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t;
  cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}
