#include <bits/stdc++.h>
using namespace std;

//#pragma GCC optimize("Ofast")
//#pragma GCC target("sse4")

#define FOR(i, a, b) for(int i = (a); i < (b); ++i)
#define RFOR(i, b, a) for(int i = (b) - 1; i >= (a); --i)

#define SZ(a) (int)((a).size())
#define ALL(a) a.begin(), a.end()
#define PB push_back

typedef long long LL;
typedef pair<int, int> PII;

const int mod = 1e9 + 7;
int add(int a, int b){
	if(a + b < mod) return a + b;
	return a + b - mod;
}
int mult(int a, int b){
	return a * (LL) b % mod;
}
int binpow(int a, int n){
	int res = 1;
	while(n){
		if(n&1) res = mult(res, a);
		a = mult(a, a);
		n /= 2;
	}
	return res;
}

const int N = 256;
int f[N][N], d[N], tin[N], tout[N], par[N][10], t;
vector<int> g[N];
void dfs(int v, int p, int D = 0){
	d[v] = D;
	par[v][0] = p;
	FOR(i, 1, 10)
		par[v][i] = par[par[v][i - 1]][i - 1];
	tin[v] = t++;
	for(int to : g[v])
		if(to != p)
			dfs(to, v, D + 1);
	tout[v] = t++;
}
bool is_par(int p, int v){
	return tin[p] <= tin[v] && tout[v] <= tout[p];
}
int lca(int a, int b){
	if(is_par(a, b)) return a;
	if(is_par(b, a)) return b;
	RFOR(i, 10, 0)
		if(!is_par(par[b][i], a))
			b = par[b][i];
	return par[b][0];
}


int main()
{
	//ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int n;
	cin >> n;
	FOR(i, 0, n - 1)
	{
		int a, b;
		cin >> a >> b;
		a--; b--;
		g[a].PB(b);
		g[b].PB(a);
	}
	int d2 = (mod + 1) / 2;
	FOR(x, 0, n)
	FOR(y, 0, n)
	{
		if(y == 0){
			f[x][y] = 0;
			continue;
		}
		if(x == 0){
			f[x][y] = 1;
			continue;
		}
		f[x][y] = mult(d2, add(f[x - 1][y], f[x][y - 1]));
	}
	int ans = 0;
	FOR(i, 0, n)
	{
		t = 0;
		dfs(i, i);
		FOR(a, 0, n)
		FOR(b, a + 1, n)
		{
			int c = lca(a, b);
			ans = add(ans, f[d[b] - d[c]][d[a] - d[c]]);
		}
	}
	ans = mult(ans, binpow(n, mod - 2));
	cout << ans << endl;
	return 0;
}




