#include<cstdio>
#define N 5005
#define p 1000000007
#define ll long long
int a[N],b[N<<1],c[N<<1],d[N>>1],f[N][N],n,s[N],t;
void dfs(int u,int v)
{
	f[u][s[u]=1]=1;
	for(int i=a[u];i;i=b[i])if(c[i]!=v)
	{
		dfs(c[i],u);
		for(int j=s[u];j;f[u][j]=(ll)f[u][j]**f[c[i]]%p,j--)for(int k=s[c[i]];k;k--)f[u][j+k]=(f[u][j+k]+(ll)f[u][j]*f[c[i]][k])%p;
		s[u]+=s[c[i]];
	}
	for(int i=2;i<=s[u];i+=2)*f[u]=(*f[u]+(ll)f[u][i]*(p-d[i>>1]))%p;
}
int main()
{
	scanf("%d",&n),*d=d[1]=1;
	for(int i=2;i<<1<=n;i++)d[i]=(i-1<<1|1ll)*d[i-1]%p;
	for(int i=2,u,v;i<=n;i++)scanf("%d%d",&u,&v),b[++t]=a[u],c[a[u]=t]=v,b[++t]=a[v],c[a[v]=t]=u;
	dfs(1,0),printf("%d\n",(p-*f[1])%p);
	return 0;
}