#include<bits/stdc++.h>
#define int long long
#define mod 1000000007
#define fi first
#define se second
using namespace std;
namespace IO{
	const int N=1<<20;
	char buf[N+5],*p=buf,*q=buf,qw[N+5];
	int bc;
	char getc(){
		if(p==q) p=buf,q=buf+fread(buf,1,N,stdin);
		return *p++;
	}
	void fls(){
		fwrite(qw,1,bc,stdout),bc=0;
	}
	void pc(char a){
		qw[bc++]=a;
		if(bc==N) fls();
	}
}
using IO::getc;
using IO::pc;
void rd(int&x){
	char c=getc();
	for(x=0;c>'9'||c<'0';c=getc());
	for(;c<='9'&&c>='0';c=getc()) x=x*10+(c^48);
}
void wt(int x){
	if(x>9) wt(x/10);
	pc(x%10+48);
}
int n,K,v[100005],f[100005][2][2],g[2][3][2][2];
vector<pair<int,int> >e[100005];
void add(int&x,int y){
	x=(x+y)%mod;
}
void dfs(int x,int fa){
	for(auto i:e[x]) if(i.fi!=fa) dfs(i.fi,x);
	memset(f[x],0,sizeof(f[x]));
	if(e[x].size()==1&&fa) return f[x][1][0]=1,void();
	memset(g,0,sizeof(g));
	g[0][0][0][0]=1;
	int c=0;
	for(auto i:e[x]){
		if(i.fi==fa)continue;
		memset(g[c^1],0,sizeof(g[0]));
		for(int j=0;j<3;j++){
			for(int k=0;k<2;k++){
				for(int l=0;l<2;l++){
					for(int p=0;p<2;p++){
						add(g[c^1][j][k][l],g[c][j][k][l]*f[i.fi][1][p]);
					}
					if(j<2){
						for(int o=k;o<2;o++) for(int p=0;p<2;p++) add(g[c^1][j+1][k+!o][(k+!o)==0?l|p|(o&&v[i.se]):(o?l:p)],g[c][j][k][l]*f[i.fi][o][p]);
					}
				} 
			}
		}
		c^=1;
	}
	for(int j=1;j<3;j++) for(int k=0;k<2;k++) for(int l=0;l<2;l++) if(fa||j==2) add(f[x][!k&&j==1][l],g[c][j][k][l]);
}
void doing(){
	rd(n),rd(K);
	for(int i=1;i<=n;i++) e[i].clear(),v[i]=0;
	for(int i=1,j,l;i<n;i++){
		rd(j),rd(l);
		e[j].push_back({l,i});
		e[l].push_back({j,i});
	}
	for(int i=1,j;i<=K;i++) rd(j),v[j]=1;
	if(n==2) return wt(1),pc('\n'),void();
	int rt=0;
	for(int i=1;i<=n;i++) if(e[i].size()>1) rt=i;
	dfs(rt,0);
	int ans=f[rt][0][1];
	for(int i=1;i<=n;i++) for(int j=1;j<e[i].size()-1;j++) ans=ans*j%mod;
	wt(ans),pc('\n');
}
signed main(){
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	int C,T;
	rd(C),rd(T);
	while(T--) doing();
	IO::fls();
}
//guang mang yao yan ru cui can xing he
