#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define int long long
const int mod = 1e9+7;
const int maxn = 209;
int n,pro;
vector<int>vec[maxn];
int quick(int x,int n)
{
	int ans = 1;
	for( ; n ; n>>=1,x=1ll*x*x%mod )
		if( n&1 )	ans = 1ll*ans*x%mod;
	return ans;
}
int f[209][209],sf[209][209];
void init()
{
	int pro = quick(2,mod-2);
	for(int i=1;i<=n;i++)	f[0][i] = 1;
	for(int i=1;i<=n;i++)
	for(int j=1;j+i<=n;j++)
		f[i][j] = ( 1ll*f[i-1][j]+f[i][j-1] )*pro%mod;
}
int fa[maxn][22],deep[maxn];
int lca(int x,int y)
{
	if( deep[x]<deep[y] )	swap(x,y);
	for(int i=20;i>=0;i--)
		if( deep[fa[x][i]]>=deep[y] )	x = fa[x][i];
	if( x==y )	return x;
	for(int i=20;i>=0;i--)
		if( fa[x][i]!=fa[y][i])		x = fa[x][i], y = fa[y][i];
	return fa[x][0];
}
int get_dis(int x,int y)
{
	int u=lca(x,y);
	return deep[x]+deep[y]-2*deep[u];
}
void predfs(int u,int father)
{
	fa[u][0] = father; deep[u] = deep[father]+1;
	for(int i=1;i<=20;i++)
		fa[u][i] = fa[fa[u][i-1]][i-1];
	for( auto v:vec[u] )
		if( v!=father )	predfs(v,u);
}
int solve()
{
	int ans = 0;
	for(int u=1;u<=n;u++)
	for(int i=u+1;i<=n;i++)
	{
		int x = lca(u,i), q = get_dis(i,x), w = get_dis(u,x);
		if( x==u )	ans = ( ans+(u>i) )%mod;
		else if( x==i )	ans = ( ans+(i>u) )%mod;
		else
		{
			if( i>u )	ans = ( ans+f[q][w] )%mod;
			else	ans = ( ans+f[w][q] )%mod;
		}
	}
	return ans;
}
signed main()
{
	cin >> n;
	init();
	for(int i=1;i<n;i++)
	{
		int l,r; cin >> l >> r;
		vec[l].push_back( r );
		vec[r].push_back( l );
	}
	int res = 0;
	for(int i=1;i<=n;i++)
	{
		predfs(i,0);
		res = ( 1ll*res+1ll*solve()*quick(n,mod-2)%mod )%mod;
	}
	cout << ( res%mod+mod )%mod;
	return 0;
}
