#include <bits/stdc++.h>
using namespace std;
const int N = 100001, M = 17;
vector<int> g[N];
int dep[N], depx[N], n, a, b, da, db;
void dfs(int s, int e) {
  dep[s] = dep[e] + 1;
  for (int u : g[s])
    if (u != e) dfs(u, s);
}
void dfsx(int s, int e) {
  depx[s] = depx[e] + 1;
  for (int u : g[s])
    if (u != e) dfsx(u, s);
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) {
    cin >> n >> a >> b >> da >> db;
    for (int u = 1; u <= n; u++) g[u].clear();
    for (int i = 0; i < n - 1; i++) {
      int u, v;
      cin >> u >> v, g[u].push_back(v), g[v].push_back(u);
    }
    dep[0] = -1, dfs(a, 0);
    int x = 1;
    for (int i = 1; i <= n; i++)
      if (dep[i] > dep[x]) x = i;
    depx[0] = -1, dfsx(x, 0);
    int d = 0;
    for (int i = 1; i <= n; i++) d = max(d, depx[i]);
    da = min(da, d), db = min(db, d);
    dep[b] <= da || da * 2 >= db ? cout << "Alice\n" : cout << "Bob\n";
  }
}
