#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
vector<int> a[N];
int n, m;
int dp[N];
void dfs(int x, int pa, int dpth) {
  dp[x] = dpth;
  for (auto it : a[x]) {
    if (it != pa) dfs(it, x, dpth + 1);
  }
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    int da, db, x, y;
    scanf("%d%d%d%d%d", &n, &x, &y, &da, &db);
    for (int i = 1; i <= n; ++i) {
      a[i].clear();
      dp[i] = 0;
    }
    int tmp1, tmp2;
    for (int i = 0; i < n - 1; ++i) {
      scanf("%d%d", &tmp1, &tmp2);
      a[tmp1].push_back(tmp2);
      a[tmp2].push_back(tmp1);
    }
    dfs(x, -1, 0);
    if (dp[y] <= da) {
      printf("Alice\n");
      continue;
    }
    pair<int, int> mx = {-1, -1};
    for (int i = 1; i <= n; ++i) {
      mx = max(mx, make_pair(dp[i], i));
      dp[i] = 0;
    }
    dfs(mx.second, -1, 0);
    for (int i = 1; i <= n; ++i) {
      mx = max(mx, make_pair(dp[i], i));
    }
    if (db > 2 * da && mx.first > 2 * da) {
      printf("Bob\n");
    } else {
      printf("Alice\n");
    }
  }
}
