#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 100;
int siz[N], lc, dis[N];
int f1[N], f2[N], ans;
vector<int> to[N];
void dfs(int u, int fa) {
  for (auto v : to[u]) {
    if (v != fa) {
      dis[v] = dis[u] + 1;
      dfs(v, u);
      if (f1[u] < f1[v] + 1) {
        f2[u] = f1[u];
        f1[u] = f1[v] + 1;
      } else if (f2[u] < f1[v] + 1) {
        f2[u] = f1[v] + 1;
      }
      siz[u] += siz[v];
      ans = max(ans, f1[u] + f2[u]);
    }
  }
  if (siz[u] == 2 && !lc) lc = u;
}
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n, a, b, da, db;
    scanf("%d%d%d%d%d", &n, &a, &b, &da, &db);
    for (int i = 1; i <= n; i++) to[i].clear(), siz[i] = f1[i] = f2[i] = 0;
    siz[a] = siz[b] = 1;
    for (int i = 1; i < n; i++) {
      int x, y;
      scanf("%d%d", &x, &y);
      to[x].push_back(y);
      to[y].push_back(x);
    }
    lc = ans = 0;
    dfs(1, 0);
    int d = dis[a] + dis[b] - 2 * dis[lc];
    if (d > da && db >= 2 * da + 1 && ans >= 2 * da + 1) {
      puts("Bob");
    } else {
      puts("Alice");
    }
  }
  return 0;
}
