#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define pii pair<ll, ll>
const int N = 4e5 + 10;
const int mod = 1e9 + 7;
using namespace std;


vector<int> v[220];
int dp[220][11], f[220][220], inv[220], deep[220];

void dfs(int x, int fa) {
    dp[x][0] = fa;
    deep[x] = deep[fa] + 1;
    for (int i = 1; i <= 10; ++i) dp[x][i] = dp[dp[x][i-1]][i-1];
    for (auto e : v[x]) if (e != fa) dfs(e, x);
}
int lca(int x, int y) {
    if (deep[x] < deep[y]) swap(x, y);
    for (int d = deep[x]-deep[y], i = 0; i < 11; ++i) if (d >> i & 1) x = dp[x][i];
    if (x == y) return x;
    for (int i = 10; i >= 0; --i) if (dp[x][i] != dp[y][i]) x = dp[x][i], y = dp[y][i];
    return dp[x][0];
}
void solve() {
    int n; scanf("%d", &n);
    for (int i = 1; i < n; ++i) {
        int x, y; scanf("%d %d", &x, &y);
        v[x].pb(y); v[y].pb(x);
    }
    inv[1] = 1;
    for (int i = 2; i <= n; ++i) inv[i] = mod - 1ll * mod / i * inv[mod % i] % mod;
    for (int i = 0; i <= n; ++i) {
        for (int j = 1; j <= n; ++j) {
            if (i == 0) f[i][j] = 1;
            else f[i][j] = 1ll * (f[i-1][j] + f[i][j-1]) * inv[2] % mod;
        }
    } 
    int ans = 0;
    for (int rt = 1; rt <= n; ++rt) {
        dfs(rt, 0);
        for (int a = 1; a <= n; ++a) {
            for (int b = a+1; b <= n; ++b) {
                int lc = lca(a, b);
                int da = deep[a] - deep[lc], db = deep[b] - deep[lc];
                ans = (ans + f[db][da]) % mod;
            }
        }
    }
    printf("%lld\n", ans * 1ll * inv[n] % mod);

}
int main() {
    int T = 1; // scanf("%d", &T);
    while (T--) solve(); 
    return 0;
}