#include <iostream>
#include <vector>
#include <cstdio>
#include <algorithm>

using namespace std;

using ll = long long;

const int N = 210, mod = 1e9 + 7;
int n;
vector<int> g[N];
ll inv[N];
ll sum[N], dsum[N]; 
ll dp[N][N];
ll res = 0ll;

ll powmod(ll x, ll k) {
	ll ans = 1;
	while(k)
	{
		if(k & 1) ans = ans * x % mod;
		x = x * x % mod;
		k >>= 1;
	}
	return ans;
}



ll frac(ll x, ll y) {
	return x * inv[y] % mod;
}

void dfs1(int x, int f) {
	sum[x] = 1;
	for(int y : g[x]) {
		if(y != f) {
			dfs1(y, x);
			sum[x] += sum[y];
		}
	}
}

void dfs2(int x, int f, int d, int root) {
	if(x < root) {
		for(int i = 0; i < d; i++) {
			res = (res + frac(dsum[i], n) * dp[i][d - i] % mod)  % mod;
		}
	}
	for(int y : g[x]) {
		if(y != f) {
			dsum[d] = sum[x] - sum[y];
			dfs2(y, x, d + 1, root);
		}
	}
}

void init() {
	for(int i = 1; i < N; i++) {
		inv[i] = powmod(i, mod - 2);
//		 printf("%lld\n", inv[i]);
	}
	dp[0][0] = 1;
	for(int i = 1; i < N; i++) {
		dp[0][i] = 1;
		dp[i][0] = 0;
	}
	
	for(int i = 1; i < N; i++)
		for(int j = 1; j < N; j++)
			dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) * inv[2] % mod;
}

int main() {
	// freopen("in.txt", "r", stdin);
	
	init();
	
	scanf("%d", &n);
	int x, y;
	for(int i = 0; i < n - 1; i++) {
		scanf("%d %d", &x, &y);
		g[x].push_back(y);
		g[y].push_back(x);
	}
	for(int i = 1; i <= n; i++) {
		dfs1(i, -1);
		dfs2(i, -1, 0, i);
	}
	printf("%lld\n", res);
}