// Problem: CF1540B Tree Array
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/CF1540B
// Memory Limit: 250 MB
// Time Limit: 2000 ms

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

template <class T>
inline void read(T &x) {
    x = 0;
    int f = 0;
    char ch = getchar();
    while (!isdigit(ch))    { f |= ch == '-'; ch = getchar(); }
    while (isdigit(ch))     { x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); }
    x = f ? -x : x;
    return ;
}

typedef unsigned long long uLL;
typedef long long LL;

const int mod = 1e9 + 7;
const int maxn = 200 + 10;

std::vector<int> g[maxn];
LL f[maxn][maxn];
LL ans;
int top[maxn], dfn[maxn], siz[maxn], dep[maxn], fa[maxn], son[maxn];
int n, cnt;

LL qPow(LL a, int b) {
    LL s = 1;
    while (b) {
        if (b & 1)    s *= a, s %= mod;
        a *= a, a %= mod;
        b >>= 1;
    }
    return s;
}

int inv(int x) { return qPow(1LL * x, mod - 2); }

void dfs1(int x, int p) {
    dep[x] = dep[p] + 1;
    siz[x] = 1;
    fa[x] = p;
    for (auto i : g[x]) {
        if (i != p) {
            dfs1(i, x);
            siz[x] += siz[i];
            if (siz[i] > siz[son[x]])    son[x] = i;
        }
    }
}

void dfs2(int x, int p) {
    top[x] = p;
    dfn[x] = ++cnt;
    if (son[x]) {
        dfs2(son[x], p);
        for (auto i : g[x]) {
            if (i != fa[x] && i != son[x]) {
                dfs2(i, i);
            }
        }
    }
}

int lca(int u, int v) {
    while (top[u] != top[v]) {
        if (dep[top[u]] < dep[top[v]])    v = fa[top[v]];
        else    u = fa[top[u]];
    }
    return dep[u] < dep[v] ? u : v;
}

int main() {
    read(n);
    for (int i = 1, u, v; i < n; ++i) {
        read(u), read(v);
        g[u].push_back(v), g[v].push_back(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 * 500000004 % mod;
        }
    }
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j)    son[j] = 0;
        dfs1(i, 0);
        dfs2(i, i);
        for (int j = 1; j <= n; ++j) {
            for (int k = 1; k < j; ++k) {
                int w = lca(j, k);
                ans += (f[dep[j] - dep[w]][dep[k] - dep[w]]) % mod;
                ans %= mod;
            }
        }
    }
    printf("%lld\n", ans % mod * inv(n) % mod);
    return 0;
}