#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
const int N=5010;
ll n,f[N],dp[N][N],siz[N],t[N];
vector<int>e[N];
void dfs(int x,int fa){
    siz[x]=1;
    dp[x][1]=1;
    for(int i=0;i<e[x].size();i++){
    	int v=e[x][i];
        if(v==fa) continue;
        dfs(v,x);
        for(int i=0;i<=siz[x];i++){
        	t[i]=dp[x][i];
        	dp[x][i]=0;
		}
        for(int j=siz[x];j>=0;j--){
        	for(int k=siz[v];k>=0;k--){
            	(dp[x][j+k]+=t[j]*dp[v][k]%mod)%=mod;
			}
		}    
        siz[x]+=siz[v];
    }
    for(int i=0;i<=siz[x];i+=2){
    	(dp[x][0]+=mod-dp[x][i]*f[i]%mod)%=mod;
	}
}
int main(){
    scanf("%lld",&n);
    for(int i=1,u,v;i<n;i++){
        scanf("%d%d",&u,&v);
        e[u].push_back(v);
        e[v].push_back(u);
    }   
    f[0]=1;
    for(int i=2;i<=n;i+=2){
    	f[i]=f[i-2]*(i-1)%mod;
	}
    dfs(1,0);
    cout<<mod-dp[1][0];
}