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

void __print(int x){cerr << x;}
void __print(long x){cerr << x;}
void __print(long long x){cerr << x;}
void __print(unsigned x){cerr << x;}
void __print(unsigned long x){cerr << x;}
void __print(unsigned long long x){cerr << x;}
void __print(float x){cerr << x;}
void __print(double x){cerr << x;}
void __print(long double x){cerr << x;}
void __print(char x){cerr << '\'' << x << '\'';}
void __print(const char *x){cerr << '\"' << x << '\"';}
void __print(const string &x){cerr << '\"' << x << '\"';}
void __print(bool x){cerr << (x ? "true" : "false");}

template<typename T, typename V>
void __print(const pair<T, V> &x){cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x){int f = 0; cerr << '{'; for(auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print(){cerr << "]\n";}
template<typename T, typename... V>
void _print(T t, V... v){__print(t); if(sizeof...(v)) cerr << ", "; _print(v...);}
#ifdef TATAMI
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#define debug(x...)
#endif

typedef long long ll;
typedef long double ld;
typedef pair<int,int>pii;
typedef pair<ll, ll>pll;

const int M = 200 + 3, K = 10;
const int MOD = 1e9 + 7;

ll bigmod(ll x, ll p){
    ll res = 1;
    while(p){
        if(p & 1) res = res * x % MOD;
        x = x * x % MOD;
        p >>= 1;
    }
    return res;
}

ll modinv(ll x){
    return bigmod(x, MOD-2);
}

pii add(pii x, pii y){

    pii ret;
    int a = x.first, b = x.second, c = y.first, d = y.second;

    ll num = (1LL*a*d + 1LL*b*c) % MOD;
    ll den = 1LL*b*d % MOD;

    return {num, den};

}

pii mult(pii x, pii y){

    ll num = 1LL*x.first*y.first % MOD, den = 1LL*x.second*y.second % MOD;
    return {num, den};

}

pii dp[M][M];

int vis[M], d[M], up[M][K];
int tin[M], tout[M], timer;
vector<int>g[M];


void dfs(int u, int par, int h=0){

    vis[u] = 1;
    up[u][0] = par;
    d[u] = h;
    tin[u] = ++timer;


    for(int i=1; i<K; i++){
        up[u][i] = up[up[u][i-1]][i-1];
    }

    for(int x : g[u]){
        if(!vis[x]) dfs(x, u, h+1);
    }

    tout[u] = ++timer;

}

bool is_ancestor(int u, int v){
    return tin[u] <= tin[v] and tout[u] >= tout[v];
}


int LCA(int u, int v){

    if(is_ancestor(u, v)) return u;
    if(is_ancestor(v, u)) return v;

    for(int i=K-1; i>=0; i--){
        if(!is_ancestor(up[u][i], v)) u = up[u][i];
    }
    return up[u][0];
}

void preprocess(int root, int n){
    for(int i=1; i<=n; i++){
        vis[i] = d[i] = tin[i] = tout[i] = 0;
        memset(up[i], sizeof up[i], 0);
    }
    timer = 0;
    dfs(root, root);
}


int main(){

    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

    for(int i=1; i<M; i++){
        dp[i][0] = {1, 1}, dp[0][i] = {0, 1};
    }

    for(int i=1; i<M; i++){
        for(int j=1; j<M; j++){
            dp[i][j] = mult(add(dp[i-1][j], dp[i][j-1]), {1, 2});
        }
    }

    int n;
    cin >> n;

    for(int i=0; i<n-1; i++){
        int u, v;
        cin >> u >> v;
        g[u].push_back(v), g[v].push_back(u);
    }

    pii ans = {0, 1};

    for(int v=1; v<=n; v++){
        preprocess(v, n);
        for(int i=1; i<=n; i++){
            for(int j=i+1; j<=n; j++){
                int L = LCA(i, j);
                int x = d[i] - d[L], y = d[j] - d[L];
                debug(i, j, x, y, dp[x][y]);
                ans = add(ans, dp[x][y]);
            }
        }
    }

    ans = mult(ans, {1, n});

    ll res = 1LL* ans.first * modinv(ans.second) % MOD;
    cout << res;



}