#include <cstdio>
#include <algorithm>
#include <vector>
#define int long long
const int N = 205, P = 1000000007, inv2 = 500000004;
int n, x, y, fa[N][20], f[N][N], dep[N], ans;
std::vector<int> g[N];
int Pow(int a, int b) {
    int an = 1;
    for( ; b; b >>= 1, a = a * a % P) 
        if(b & 1) an = an * a % P;
    return an;
}
void dfs(int u, int par) {
    fa[u][0] = par, dep[u] = dep[par] + 1;
    for (int i = 1; i < 20; i++) fa[u][i] = fa[fa[u][i-1]][i-1];
    for (int i = 0; i < (signed)g[u].size(); i++) {
        int v = g[u][i];
        if (v != par) dfs(v, u);
    }
}
int LCA(int x, int y) {
    if (dep[x] < dep[y]) std::swap(x, y);
    for (int i = 19; i >= 0; i--)
        if (dep[x] - (1 << i) >= dep[y])
            x = fa[x][i];
    if (x == y) return x;
    for (int i = 19; i >= 0; i--)
        if (fa[x][i] != fa[y][i]) x = fa[x][i], y = fa[y][i];
    return fa[x][0];
}
signed main() {
    scanf("%lld", &n);
    for (int i = 1, x, y; i < n; i++) {
        scanf("%lld%lld", &x, &y);
        g[x].push_back(y);
        g[y].push_back(x);
    }
    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]) * inv2 % P;
    for (int i = 1; i <= n; i++) {
        dfs(i, 0);
        for (int j = 1; j <= n; j++)
            for (int k = 1; k < j; k++) {
                int lca = LCA(j, k);
                ans = (ans + f[dep[j]-dep[lca]][dep[k]-dep[lca]]) % P;
            }
    }        
    printf("%lld", ans * Pow(n, P-2) % P);
    return 0;
}