#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=5e3+7;
const int mod=1e9+7;

int n;
int head[N],to[N*2],nx[N*2],ec=1;
inline void add(int a,int b){
	nx[++ec]=head[a]; head[a]=ec; to[ec]=b;
}

int f[N][N],g[N],sz[N],tmp[N];
void dfs(int fa,int x){
	for(int i=head[x];i;i=nx[i]) if(to[i]!=fa) dfs(x,to[i]);
	f[x][1]=1; sz[x]=1;
	for(int i=head[x];i;i=nx[i]){
		int t=to[i];
		if(t==fa) continue;
		for(int u=1;u<=sz[x];++u)
			for(int v=0;v<=sz[t];++v)
				tmp[u+v]=(tmp[u+v]+1ll*f[x][u]*f[t][v])%mod;
		sz[x]+=sz[t];
		for(int u=1;u<=sz[x];++u) f[x][u]=tmp[u],tmp[u]=0;
	}
	for(int i=2;i<=sz[x];i+=2) f[x][0]=(f[x][0]+(mod-1ll)*f[x][i]%mod*g[i])%mod;
}

int main(){
	scanf("%d",&n); g[0]=1;
	for(int i=1;i<n;++i){
		int x,y; scanf("%d%d",&x,&y);
		add(x,y); add(y,x);
	}
	for(int i=2;i<=n;i+=2) g[i]=g[i-2]*(i-1ll)%mod;
	dfs(0,1); printf("%d\n",mod-f[1][0]);
	return 0;
}