#!/bin/python
import sys
def gcd(a, b):
if not b:
return a
return gcd(b, a%b)
def dfs1(m, guess, root, seen):
count = 0
stack = []
stack.append(root)
while len(stack):
root = stack.pop(len(stack)-1)
for i in m[root]:
if seen[i][root] != 1 and seen[root][i] != 1:
seen[i][root] = 1
seen[root][i] = 1
count += (1 if guess[root][i] == 1 else 0)
stack.append(i)
return count
def dfs2(m, guess, root, seen, cost, k):
stack = []
stack.append((root, cost))
t_win = 0
while len(stack):
(root, cost) = stack.pop(len(stack)-1)
t_win += cost >= k
for i in m[root]:
if seen[i][root] != 1 and seen[root][i] != 1:
seen[i][root] = 1
seen[root][i] = 1
stack.append((i, cost - guess[root][i] + guess[i][root]))
return t_win
q = int(raw_input().strip())
for a0 in xrange(q):
n = int(raw_input().strip())
m = {}
guess = [[0 for i in range(n+1)] for i in range(n+1)]
seen = [[0 for i in range(n+1)] for i in range(n+1)]
for a1 in xrange(n-1):
u,v = raw_input().strip().split(' ')
u,v = [int(u),int(v)]
if u not in m:
m[u] = []
m[u].append(v)
if v not in m:
m[v] = []
m[v].append(u)
g,k = raw_input().strip().split(' ')
g,k = [int(g),int(k)]
for a1 in xrange(g):
u,v = raw_input().strip().split(' ')
u,v = [int(u),int(v)]
guess[u][v] = 1
#print(m)
#for i in guess:
# print i
cost = dfs1(m, guess, 1, seen)
#print("cost", cost)
seen = [[0 for i in range(n+1)] for i in range(n+1)]
win = dfs2(m, guess, 1, seen, cost, k)
#print(win, n)
g = gcd(win, n)
print("{0}/{1}".format(win/g, n/g))
IyEvYmluL3B5dGhvbgoKaW1wb3J0IHN5cwoKZGVmIGdjZChhLCBiKToKICAgIGlmIG5vdCBiOgogICAgICAgIHJldHVybiBhCiAgICByZXR1cm4gZ2NkKGIsIGElYikKCmRlZiBkZnMxKG0sIGd1ZXNzLCByb290LCBzZWVuKToKICAgIGNvdW50ID0gMAogICAgc3RhY2sgPSBbXQogICAgc3RhY2suYXBwZW5kKHJvb3QpCiAgICB3aGlsZSBsZW4oc3RhY2spOgogICAgICAgIHJvb3QgPSBzdGFjay5wb3AobGVuKHN0YWNrKS0xKQogICAgICAgIGZvciBpIGluIG1bcm9vdF06CiAgICAgICAgICAgIGlmIHNlZW5baV1bcm9vdF0gIT0gMSBhbmQgc2Vlbltyb290XVtpXSAhPSAxOgogICAgICAgICAgICAgICAgc2VlbltpXVtyb290XSA9IDEKICAgICAgICAgICAgICAgIHNlZW5bcm9vdF1baV0gPSAxCiAgICAgICAgICAgICAgICBjb3VudCArPSAoMSBpZiBndWVzc1tyb290XVtpXSA9PSAxIGVsc2UgMCkKICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZChpKQogICAgcmV0dXJuIGNvdW50CgpkZWYgZGZzMihtLCBndWVzcywgcm9vdCwgc2VlbiwgY29zdCwgayk6CiAgICBzdGFjayA9IFtdCiAgICBzdGFjay5hcHBlbmQoKHJvb3QsIGNvc3QpKQogICAgdF93aW4gPSAwCiAgICB3aGlsZSBsZW4oc3RhY2spOgogICAgICAgIChyb290LCBjb3N0KSA9IHN0YWNrLnBvcChsZW4oc3RhY2spLTEpIAogICAgICAgIHRfd2luICs9IGNvc3QgPj0gawogICAgICAgIGZvciBpIGluIG1bcm9vdF06CiAgICAgICAgICAgIGlmIHNlZW5baV1bcm9vdF0gIT0gMSBhbmQgc2Vlbltyb290XVtpXSAhPSAxOgogICAgICAgICAgICAgICAgc2VlbltpXVtyb290XSA9IDEKICAgICAgICAgICAgICAgIHNlZW5bcm9vdF1baV0gPSAxCiAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmQoKGksIGNvc3QgLSBndWVzc1tyb290XVtpXSArIGd1ZXNzW2ldW3Jvb3RdKSkKICAgIHJldHVybiB0X3dpbgogICAgICAgIAoKcSA9IGludChyYXdfaW5wdXQoKS5zdHJpcCgpKQpmb3IgYTAgaW4geHJhbmdlKHEpOgogICAgbiA9IGludChyYXdfaW5wdXQoKS5zdHJpcCgpKQogICAgbSA9IHt9CiAgICBndWVzcyA9IFtbMCBmb3IgaSBpbiByYW5nZShuKzEpXSBmb3IgaSBpbiByYW5nZShuKzEpXQogICAgc2VlbiA9IFtbMCBmb3IgaSBpbiByYW5nZShuKzEpXSBmb3IgaSBpbiByYW5nZShuKzEpXQogICAgZm9yIGExIGluIHhyYW5nZShuLTEpOgogICAgICAgIHUsdiA9IHJhd19pbnB1dCgpLnN0cmlwKCkuc3BsaXQoJyAnKQogICAgICAgIHUsdiA9IFtpbnQodSksaW50KHYpXQogICAgICAgIGlmIHUgbm90IGluIG06CiAgICAgICAgICAgIG1bdV0gPSBbXQogICAgICAgIG1bdV0uYXBwZW5kKHYpCiAgICAgICAgaWYgdiBub3QgaW4gbToKICAgICAgICAgICAgbVt2XSA9IFtdCiAgICAgICAgbVt2XS5hcHBlbmQodSkKICAgIGcsayA9IHJhd19pbnB1dCgpLnN0cmlwKCkuc3BsaXQoJyAnKQogICAgZyxrID0gW2ludChnKSxpbnQoayldCiAgICBmb3IgYTEgaW4geHJhbmdlKGcpOgogICAgICAgIHUsdiA9IHJhd19pbnB1dCgpLnN0cmlwKCkuc3BsaXQoJyAnKQogICAgICAgIHUsdiA9IFtpbnQodSksaW50KHYpXQogICAgICAgIGd1ZXNzW3VdW3ZdID0gMQogICAgI3ByaW50KG0pCiAgICAjZm9yIGkgaW4gZ3Vlc3M6CiAgICAjICAgIHByaW50IGkKICAgIGNvc3QgPSBkZnMxKG0sIGd1ZXNzLCAxLCBzZWVuKQogICAgI3ByaW50KCJjb3N0IiwgY29zdCkKICAgIHNlZW4gPSBbWzAgZm9yIGkgaW4gcmFuZ2UobisxKV0gZm9yIGkgaW4gcmFuZ2UobisxKV0KICAgIHdpbiA9IGRmczIobSwgZ3Vlc3MsIDEsIHNlZW4sIGNvc3QsIGspCiAgICAjcHJpbnQod2luLCBuKQogICAgZyA9IGdjZCh3aW4sIG4pCiAgICBwcmludCgiezB9L3sxfSIuZm9ybWF0KHdpbi9nLCBuL2cpKQ==