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

#define rng(x) x.begin(), x.end()
#define pb push_back
#define ff first
#define ss second

typedef double db;
typedef long long ll;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef vector<bool> vb;
typedef unsigned long long int lld;

/*-----------------------------Code begins----------------------------------*/
ll mod = 1e9 + 7;
const ll INF = 1e9;

ll inv(ll v)
{
	if (v<=1)
		return v;
	return inv(mod%v)*(mod-mod/v)%mod;
}

void solve(){
    int n; cin>>n;
    vvl dist(n,vl(n,INF));
    for(int i=1; i<n; i++){
        int u,v; cin>>u>>v;
        u--; v--;
        dist[u][v]=1;
        dist[v][u]=1;
    }
    for(int i=0; i<n; i++){
        dist[i][i]=0;
    }
    for(int k=0; k<n; k++){
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
            }
        }
    }
    vvl prob(207,vl(207));
    for(int i=0; i<=n; i++){
        for(int j=0; j<=n; j++){
            if(i==0){
                prob[i][j]=0;
            }
            else if(j==0){
                prob[i][j]=1;
            }
            else{
                prob[i][j] = ((prob[i-1][j] + prob[i][j-1])%mod * inv(2) )%mod;
            }
        }
    }

    ll ans=0;
    for(int a=0; a<n; a++){
        for(int b=a+1; b<n; b++){
            for(int root=0; root<n; root++){
                int root_a = dist[a][root];
                int root_b = dist[b][root];
                int root_lca = ( root_a + root_b - dist[a][b] )/2 ;
                int lca_a = root_a - root_lca ;
                int lca_b = root_b - root_lca ;
                ans = (ans + prob[lca_a][lca_b])%mod;
            }
        }
    }
    ans = (ans * inv(n) )%mod;
    cout<<ans<<"\n";
}
int main(){
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int T = 1;
  //cin >> T;
  while (T--){
    solve();
  }
  return 0;
}
