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

constexpr size_t MAXN = 205, MAXM = MAXN << 1;
const int MOD = 1e9 + 7;

int head[MAXM], nxt[MAXM], v[MAXM], cnt;
int dp[MAXN][MAXN];
int f[10][MAXN], dep[MAXN];
int n;

inline int Pow(int x, int y) {
	int ans = (x != 0);
	for (; y; x = x * x % MOD, y >>= 1)
		if (y & 1) ans = ans * x % MOD;
	return ans;
}

inline void Addline(int x, int y) { v[cnt] = y, nxt[cnt] = head[x], head[x] = cnt++; }

inline void DFS(int x, int y) {
	dep[x] = dep[y] + 1, f[0][x] = y;
	for (int i = 1; i < 10; i++)
		f[i][x] = f[i - 1][f[i - 1][x]];
	for (int i = head[x]; ~i; i = nxt[i])
		if (v[i] != y)
			DFS(v[i], x);
}

inline int LCA(int x, int y) {
	if (dep[x] < dep[y]) swap(x, y);
	for (int i = 9; i >= 0; i--)
		if (dep[x] - (1ll << i) >= dep[y]) x = f[i][x];
	if (x == y) return x;
	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(void) {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	memset(head, -1, sizeof head);
	cin >> n;
	for (int i = 1, x, y; i < n; i++)
		cin >> x >> y, Addline(x, y), Addline(y, x);
	for (int i = 1; i <= n; i++) dp[0][i] = 1;

	int inv2 = Pow(2, MOD - 2), ans = 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]) * inv2 % MOD;
	for (int i = 1; i <= n; i++) {
		DFS(i, 0);
		for (int j = 2; j <= n; j++)
			for (int k = 1; k < j; k++) {
				int ld = dep[LCA(j, k)];
				//printf("ld : %lld %lld %lld\n", ld, i, LCA(j, k));
				//printf("dep : %lld %lld\n", dep[j], dep[k]);
				ans = (ans + dp[dep[j] - ld][dep[k] - ld]) % MOD;
				//cout << ans << endl;
			}
	}
	cout << ans * Pow(n, MOD - 2) % MOD;
}