#include<bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long mi(long long n, long long k) {
	long long an = 1;
	while (k) {
		if (k & 1)
			an = an * n % mod;
		n = n * n % mod, k >>= 1;
	}
	return an;
}
int n, x, y, d[201], f[10][201], g;
long long inv, inv2, ans, dp[201][201];
vector<int>v[201];
void dfs(int fa, int x) {
	d[x] = d[fa] + 1, f[0][x] = fa;
	for (auto i : v[x])
		if (i != fa)
			dfs(x, i);
}
void init() {
	for (int i = 1; i < 10; i++)
		for (int j = 1; j <= n; j++)
			f[i][j] = f[i - 1][f[i - 1][j]];
}
int lca(int x, int y) {
	if (d[x] > d[y]) {
		for (int i = 9; i >= 0; i--)
			if (d[f[i][x]] >= d[y])
				x = f[i][x];
		if (x == y)
			return y;
	}
	if (d[x] < d[y]) {
		for (int i = 9; i >= 0; i--)
			if (d[f[i][y]] >= d[x])
				y = f[i][y];
		if (x == y)
			return y;
	}
	for (int i = 9; i >= 0; i--)
		if (f[i][x] != f[i][y])
			x = f[i][x], y = f[i][y];
	return f[0][x];
}
signed main() {
	ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
	cin >> n;
	inv = mi(n, mod - 2), inv2 = mi(2, mod - 2);
	for (int i = 1; i <= n; i++)
		dp[0][i] = 0, dp[i][0] = 1;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			dp[i][j] = (dp[i][j - 1] + dp[i - 1][j]) * inv2 % mod;
	for (int i = 1; i < n; i++)
		cin >> x >> y, v[x].push_back(y), v[y].push_back(x);
	for (int i = 1; i <= n; i++) {
		dfs(0, i), init();
		for (int x = 1; x < n; x++)
			for (int y = x + 1; y <= n; y++)
				g = lca(x, y), ans = (ans + dp[d[x] - d[g]][d[y] - d[g]]) % mod;
	}
	cout << ans * inv % mod;
}