#include <bits/stdc++.h>
using namespace std;
const int N = 100100;
int n, a, b, da, db, x, y;
int h[N], tot;
int d[N], q[N], v[N];
struct edge {
  int y, next;
} g[N * 2];
void adp(int x, int y) {
  g[++tot].y = y;
  g[tot].next = h[x];
  h[x] = tot;
}
int bfs(int x, int y) {
  for (int i = 1; i <= n; i++) v[i] = 0;
  int l = 0, r = 1;
  q[1] = x;
  d[x] = 0;
  while (l < r) {
    int x = q[++l];
    v[x] = 1;
    if (x == y) return d[x];
    for (int i = h[x]; i; i = g[i].next)
      if (!v[g[i].y]) {
        v[g[i].y] = 1;
        d[g[i].y] = d[x] + 1;
        q[++r] = g[i].y;
      }
  }
  return q[r];
}
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++) h[i] = 0;
    tot = 0;
    for (int i = 1; i < n; i++) {
      scanf("%d%d", &x, &y);
      adp(x, y);
      adp(y, x);
    }
    x = bfs(1, -1);
    y = bfs(x, -1);
    int mx = bfs(x, y);
    int dis = bfs(a, b);
    if (dis <= da || da * 2 >= db || mx <= da * 2)
      printf("Alice\n");
    else
      printf("Bob\n");
  }
}
