#include <bits/stdc++.h>
using namespace std;
vector<int> A1[100005];
int A[3][100005];
void dfs(int u, int e, int dis, int index) {
  A[index][u] = dis;
  for (int i = 0; i < A1[u].size(); i++) {
    if (A1[u][i] == e) {
      continue;
    }
    dfs(A1[u][i], u, dis + 1, index);
  }
}
void solve() {
  int n, a, b, ha, hb;
  cin >> n >> a >> b >> ha >> hb;
  for (int i = 1; i <= n; i++) {
    A1[i].clear();
  }
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    cin >> a >> b;
    A1[a].push_back(b);
    A1[b].push_back(a);
  }
  dfs(1, -1, 0, 0);
  int u = 0, val = 0;
  for (int i = 1; i <= n; i++) {
    if (A[0][i] > val) {
      val = A[0][i];
      u = i;
    }
  }
  dfs(u, -1, 0, 1);
  val = 0;
  for (int i = 1; i <= n; i++) {
    val = max(val, A[1][i]);
  }
  val++;
  dfs(a, -1, 0, 2);
  if (ha >= val / 2 || 2 * ha >= hb || A[2][b] <= ha) {
    cout << "Alice\n";
  } else {
    cout << "Bob\n";
  }
}
int main() {
  int t;
  cin >> t;
  for (int i = 0; i < t; i++) {
    solve();
  }
}
