#include <bits/stdc++.h>
using namespace std;
vector<int> dx = {1, 0, -1, 0}, dy = {0, 1, 0, -1};
int mod = 1e9 + 9;
vector<vector<int>> g;
vector<int> used, depth;
long long diam = 0;
long long dfs(int x, int p) {
  long long len = 0;
  for (int y : g[x]) {
    if (y != p) {
      depth[y] = depth[x] + 1;
      long long cur = 1 + dfs(y, x);
      diam = max(diam, cur + len);
      len = max(len, cur);
    }
  }
  return len;
}
long long solve() {
  int n, a, b, da, db;
  cin >> n >> a >> b >> da >> db;
  a--;
  b--;
  diam = 0;
  g.resize(n);
  for (int(i) = (0); i < n; i++) {
    g[i].clear();
  }
  used = {};
  used.resize(n);
  depth = {};
  depth.resize(n);
  for (int(i) = (0); i < n - 1; i++) {
    int u, v;
    cin >> u >> v;
    u--;
    v--;
    g[u].push_back(v);
    g[v].push_back(u);
  }
  dfs(a, -1);
  if (depth[b] > da && 2 * da < db && 2 * da < diam) {
    cout << "Bob\n";
  } else {
    cout << "Alice\n";
  }
  return 1;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int tt = 1;
  cin >> tt;
  while (tt--) {
    solve();
  }
  return 0;
}
