#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
#define F first
#define S second
const int MN = 205, MOD = 1e9+7;

ll fpow(ll b, int e=MOD-2){ if(!e) return 1; ll t=fpow(b,e>>1); return ((e&1)?t*b%MOD:t)*t%MOD;}
ll fact[MN]{1}, finv[MN]{1}, pw2[MN]{1}, inv2[MN]{1};
ll nckpsa[MN][MN]{};

inline ll nCk(int n, int k){
    assert(MN > n && n >= k && k >= 0);
    return fact[n] * finv[k] %MOD * finv[n-k] %MOD;
}

int N; vector<int> adjl[MN];
int dis[MN], st[MN], stcnt; pii sptb[MN<<1][30];

void dfs(int u, int p){
    st[u] = stcnt;
    sptb[stcnt++][0] = {dis[u], u};
    for(int v: adjl[u]){
        if(v != p){
            dis[v] = dis[u]+1;
            dfs(v, u);
            sptb[stcnt++][0] = {dis[u], u};
        }
    }
}

inline int find_lca(int u, int v){ // u in v's subtree
    u = st[u]; v = st[v];
    if(u > v) swap(u, v);
    int diff = 31 - __builtin_clz(v-u+1);
    return min(sptb[u][diff], sptb[v+1-(1<<diff)][diff]).S;
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    for(int i = 1; i < MN; i++){
        fact[i] = fact[i-1] * i %MOD;
        pw2[i] = pw2[i-1]*2 %MOD;
    } finv[MN-1] = fpow(fact[MN-1]); inv2[MN-1] = fpow(pw2[MN-1]);
    for(int i = MN-1; --i; ){
        finv[i] = finv[i+1] * (i+1) %MOD;
        inv2[i] = inv2[i+1] * 2 %MOD;
    }
    for(int k = 0; k < MN-1; k++){
        nckpsa[k][k] = inv2[k+1];
        for(int n = k+1; n < MN-1; n++){
            nckpsa[k][n] = (nckpsa[k][n-1] + nCk(n, k) * inv2[n+1]) %MOD;
        }
    }

    cin >> N;
    for(int i = 1, u, v; i < N; i++){
        cin >> u >> v;
        adjl[u].push_back(v); adjl[v].push_back(u);
    }
    
    ll ans = 0;
    for(int i = 1; i <= N; i++){
        dis[i] = 0;
        stcnt = 0;
        dfs(i, -1);
        for(int j = stcnt; j--; ){
            for(int k = 1; j+(1<<k) <= stcnt; k++){
                sptb[j][k] = min(sptb[j][k-1], sptb[j+(1<<k-1)][k-1]);
            }
        }
        for(int j = 2; j <= N; j++){
            for(int k = 1; k < j; k++){
                int lca = find_lca(j, k);
                if(lca == j){
                    ans = (ans+1)%MOD;
                    // printf("%d %d %lld %lld\n", j, k, 1, 1);
                } else if(lca != k){
                    int x = dis[j] - dis[lca], y = dis[k] - dis[lca], dissum = x+y;
                    assert(min(x, y) > 0);
                    ll delta = nckpsa[x-1][dissum-2];
                    // printf("%d %d %d %d %d %lld\n", j, k, x, y, dissum, delta);
                    ans = (ans + delta) %MOD;
                }
            }
        }
        // printf("\n");
    }
    printf("%lld\n", ans * fpow(N) %MOD);

    return 0;
}