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

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


const ll p = 1e9 + 7;
const ll inv2 = 500000004;
ll dp[210][210];
int f[210][11];
int d[210];
vector<int>g[210];
ll ans;
int n;
ll qpow(ll x,ll y){
    ll res=1;
    while(y){
        if(y&1) res=res*x%p;
        x=x*x%p;
        y>>=1;
    }
    return res;
}
void dfs(int x, int fa) {
    d[x] = d[fa] + 1;
    f[x][0] = fa;
    for(int i = 1; i <= 10; i++) {
        f[x][i] = f[f[x][i - 1]][i - 1];
    }
    for(auto i : g[x]) {
        if(i == fa) continue;
        dfs(i, x);
    }
}
int lca(int x, int y) {
    if(d[x] < d[y]) swap(x, y);
    for(int i = 10; i >= 0; i--) {
        if(d[f[x][i]] >= d[y]) x = f[x][i];
    }
    for(int i = 10; i >= 0; i--) {
        if(f[x][i] != f[y][i]) x = f[x][i], y = f[y][i];
    }
    //cout<<x<<endl;
    return x == y ? x : f[x][0];

}
void solve(ll id) {
    dfs(id, 0);
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j < i; j++) {
            //cout<<id<<" "<<i<<" "<<j<<" "<<lca(i,j)<<endl;
            int fa = d[lca(i, j)];
            ans = (ans + dp[d[i] - fa][d[j] - fa]) % p;
        }
    }
}
int main() {

    cin >> n;
    for(int i = 0; i <= n; i++) {
        for(int j = 0; j <= n; j++) {
            if(i == 0) dp[i][j] = 1;
            else if(j) dp[i][j] = (dp[i][j - 1] + dp[i - 1][j]) * inv2 % p;
        }
    }
    for(int i = 1; i < n; i++) {
        int u, v;
        cin >> u >> v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    for(int i = 1; i <= n; i++) {
        solve(i);
    }
    cout << ans*qpow(n,p-2)%p << endl;
}
