#include <algorithm>
#include <iostream>
#include <vector>
#define int long long
using namespace std;

const int maxn = 500005;
int n, root;
int fst[maxn << 1], to[maxn << 1], nxt[maxn << 1];
int fa[maxn];
int l[maxn];
int anc[maxn][33];
int e;

void AddEdge(int u, int v) {
    e++;
    to[e] = v;
    nxt[e] = fst[u];
    fst[u] = e;
}

void dfs(int u) {
    for (int i = fst[u]; i; i = nxt[i]) {
        if (to[i] != fa[u]) {
            fa[to[i]] = u;
            l[to[i]] = l[u] + 1;
            dfs(to[i]);
        }
    }
}

void turn() {
    fa[root] = -1;
    l[root] = 0;
    dfs(root);
}

void pre() {
    for (int i = 1; i <= n; i++) {
        anc[i][0] = fa[i];
        for (int j = 1; (1 << j) <= n; j++) {
            anc[i][j] = -1;
        }
    }
    for (int j = 1; (1 << j) <= n; j++) {
        for (int i = 1; i <= n; i++) {
            if (anc[i][j - 1] != -1) {
                int a = anc[i][j - 1];
                anc[i][j] = anc[a][j - 1];
            }
        }
    }
}

int query(int p, int q) {
    if (l[p] < l[q]) {
        swap(p, q);
    }
    int log = 1;
    while ((1 << log) <= l[p]) {
        log++;
    }
    log--;
    for (int i = log; i >= 0; i--) {
        if (l[p] - (1 << i) >= l[q]) {
            p = anc[p][i];
        }
    }
    if (p == q) {
        return q;
    }
    for (int i = log; i >= 0; i--) {
        if (anc[p][i] != -1 && anc[p][i] != anc[q][i]) {
            p = anc[p][i];
            q = anc[q][i];
        }
    }
    return fa[p];
}

int f[205][205];
const int mod = 1e9 + 7;
int q_mod(int a, int k) {
    int ans = 1;
    while (k) {
        if (k & 1) {
            ans *= a;
            ans %= mod;
        }
        a *= a;
        a %= mod;
        k >>= 1;
    }
    return ans;
}
signed main() {
    cin >> n;
    for (int i = 1; i < n; i++) {
        int u, v;
        cin >> u >> v;
        AddEdge(u, v);
        AddEdge(v, u);
    }
    for (int i = 1; i <= n; i++) {
        f[i][0] = 1;
    }
    int inv2 = q_mod(2, mod - 2), invn = q_mod(n, mod - 2);
    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 * inv2 % mod;
        }
    }
    int ans = 0;
    for (int i = 1; i <= n; i++) {
        root = i;
        turn();
        pre();
        int res = 0;
        for (int p = 1; p <= n; p++) {
            for (int q = p + 1; q <= n; q++) {
                int lca = query(p, q);
                res += f[l[p] - l[lca]][l[q] - l[lca]];
                res %= mod;
            }
        }
        ans += res * invn % mod;
        ans %= mod;
    }
    cout << ans << endl;
    return 0;
}