#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 50;
const int mod = 1e9 + 7;
vector<int> g[maxn];
int x;
int dep;
int dis;
int n, a, b, da, db;
void dfs(int u, int fa, int stp) {
  if (stp > dep) {
    dep = stp;
    x = u;
  }
  if (u == b) dis = stp;
  for (int i = 0; i < g[u].size(); ++i) {
    int v = g[u][i];
    if (v == fa) continue;
    dfs(v, u, stp + 1);
  }
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    scanf("%d %d %d %d %d", &n, &a, &b, &da, &db);
    for (int i = 1; i <= n; ++i) g[i].clear();
    for (int i = 1; i < n; ++i) {
      int u, v;
      scanf("%d %d", &u, &v);
      g[u].push_back(v);
      g[v].push_back(u);
    }
    dep = 0;
    dfs(1, 0, 0);
    int y;
    dep = 0;
    dfs(x, 0, 0);
    int tmp = dep;
    dep = 0;
    dfs(a, 0, 0);
    if (db > 2 * da && tmp > 2 * da && dis > da)
      printf("Bob\n");
    else
      printf("Alice\n");
  }
  return 0;
}
