#include <bits/stdc++.h>
#define int long long
#define mod 1000000007 
#define inv 500000004

using namespace std;

int ksm(int a, int b) {
	int ans = 1, base = a % mod;
	while (b) {
		if (b & 1) ans = (ans * base) % mod;
		base = (base * base) % mod;
		b /= 2;
	}
	return ans % mod;
}

struct Edge{
	int to;
	int next;
};

Edge edge[405];
int head[205], cnt = 0;

void add(int u, int v) {
	cnt++;
	edge[cnt].to = v;
	edge[cnt].next = head[u];
	head[u] = cnt;
}

int n, fa[205][25], f[205][205], dep[205];

void dfs(int u, int fath) {
	for (int i = head[u]; i; i = edge[i].next) {
		int v = edge[i].to;
		if (v == fath) continue;
		dep[v] = dep[u] + 1;
		fa[v][0] = u;
		for (int j = 1; j <= 22; j++) {
			fa[v][j] = fa[fa[v][j - 1]][j - 1];
		}
		dfs(v, u);
	}
}

int lca(int x, int y) {
	if (dep[x] < dep[y]) swap(x, y);
	for (int i = 22; i >= 0; i--) {
		if (dep[fa[x][i]] >= dep[y]) {
			x = fa[x][i];
		}
	}
	if (x == y) return x;
	for (int i = 22; i >= 0; i--) {
		if (fa[x][i] != fa[y][i]) {
			x = fa[x][i]; y = fa[y][i];
		}
	}
	return fa[x][0];
}

signed main() {
	cin >> n;
	for (int i = 1; i < n; i++) {
		int u, v;
		cin >> u >> v;
		add(u, v); add(v, u);
	}
	for (int i = 1; i <= n; i++) f[0][i] = 1;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			f[i][j] = ((f[i - 1][j] + f[i][j - 1]) % mod * inv % mod) % mod;
		}
	}
	int ans = 0;
	for (int rt = 1; rt <= n; rt++) {
		memset(dep, 0, sizeof dep);
		memset(fa, 0, sizeof fa);
		dep[rt] = 1;
		dfs(rt, 0);
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= i - 1; j++) {
				int LCA = lca(i, j);
				ans = (ans % mod + f[dep[i]-dep[LCA]][dep[j]-dep[LCA]] % mod) % mod;
			} 
		}
	}
	cout << (ans % mod * ksm(n, mod - 2) % mod) % mod;
	return 0;
}

