#include<iostream>
#include<cstring>
#include<vector>
#include<cmath>
using namespace std;
typedef long long LL;
const int N = 210,p = 1e9+7;
int n,x,y;
int dis[N][N]={0};
vector<int> edge[N];
LL ans,ex[N][N];
LL qmi(LL a,LL k){
    LL res = 1;
    while(k){
        if(k&1)res=res*a%p;
        a=a*a%p;
        k>>=1;
    }
    return res;
}
void dfs(int i,int src){
    for(int j : edge[i])
        if(dis[src][j]==0&&j!=src)
        {
            dis[src][j]=dis[src][i]+1;
            dfs(j,src);
        }
}
int main()
{
    for(int i=1;i<N;i++)ex[0][i]=1;
    for(int i=0;i<N;i++){
        for(int j=1;j<i;j++){
            ex[j][i-j]=(ex[j][i-j-1]+ex[j-1][i-j])*qmi(2,p-2)%p;
        }
    }
    cin>>n;
    for(int i=0;i<n-1;i++){
        cin>>x>>y;
        edge[x].push_back(y);
        edge[y].push_back(x);
    }
    for(int i=1;i<=n;i++)dfs(i,i);
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            for(int k=1;k<=n;k++){
                if(dis[i][k]-dis[j][k]==dis[i][j])ans=(ans+1)%p;
                else if(fabs(dis[i][k]-dis[j][k])<dis[i][j])ans=(ans+ex[(dis[i][j]+dis[j][k]-dis[i][k])/2][(dis[i][j]-dis[j][k]+dis[i][k])/2])%p;
            }
        }
    }
    cout<<ans*qmi(n,p-2)%p<<endl;
    return 0;
}