#include <bits/stdc++.h>
using namespace std;
signed main() {
  cin.tie(nullptr)->sync_with_stdio(false);
  long long t;
  cin >> t;
  while (t--) {
    long long n, a, b, da, db;
    cin >> n >> a >> b >> da >> db;
    vector<vector<long long>> adj(n + 1);
    for (long long i = 0; i < n - 1; i++) {
      long long x, y;
      cin >> x >> y;
      adj[x].push_back(y);
      adj[y].push_back(x);
    }
    if (true) {
      vector<bool> vis(n + 1);
      vector<long long> dis(n + 1);
      queue<long long> q;
      q.push(a);
      vis[a] = true;
      while (!q.empty()) {
        long long cur = q.front();
        q.pop();
        for (long long nxt : adj[cur]) {
          if (!vis[nxt]) {
            vis[nxt] = true;
            dis[nxt] = dis[cur] + 1;
            q.push(nxt);
          }
        }
      }
      if (dis[b] <= da) {
        cout << "Alice\n";
        continue;
      }
    }
    if (true) {
      long long start = 0;
      if (true) {
        vector<bool> vis(n + 1);
        vector<long long> dis(n + 1);
        queue<long long> q;
        q.push(a);
        vis[a] = true;
        while (!q.empty()) {
          long long cur = q.front();
          q.pop();
          for (long long nxt : adj[cur]) {
            if (!vis[nxt]) {
              vis[nxt] = true;
              dis[nxt] = dis[cur] + 1;
              q.push(nxt);
            }
          }
        }
        long long mx = 0;
        for (long long i = 1; i <= n; i++) {
          if (dis[i] > mx) {
            mx = dis[i];
            start = i;
          }
        }
      }
      if (true) {
        vector<bool> vis(n + 1);
        vector<long long> dis(n + 1);
        queue<long long> q;
        q.push(start);
        vis[start] = true;
        while (!q.empty()) {
          long long cur = q.front();
          q.pop();
          for (long long nxt : adj[cur]) {
            if (!vis[nxt]) {
              vis[nxt] = true;
              dis[nxt] = dis[cur] + 1;
              q.push(nxt);
            }
          }
        }
        long long dia = 0;
        for (long long i = 1; i <= n; i++) {
          dia = max(dia, dis[i]);
        }
        if (da * 2 >= dia) {
          cout << "Alice\n";
          continue;
        }
      }
    }
    if (da * 2 < db) {
      cout << "Bob\n";
    } else {
      cout << "Alice\n";
    }
  }
  return 0;
}
