#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
#define ud unsigned int
#define ll long long
#define ull unsigned long long
#define MAX_INF 0x3f
#define MAX_INF_VAL 0x3f3f3f3f
#define MAX_INF_VAL_LL 0x3f3f3f3f3f3f3f3f
//#define pi 3.141592653589
#define eps 1e-9
#define F(x) ((x)/3+((x)%3==1?0:tb))
#define G(x) ((x)<tb?(x)*3+1:((x)-tb)*3+2)
//#define p 2173412051LL
//#define sz 2

using namespace std;

template< typename T > void read( T &x ) {
	x = 0;
	char ch = getchar();
	ll f = 1;
	while( !isdigit( ch ) ) {
		if( ch == '-' )
		f *= -1;
		ch = getchar();
	}
	while( isdigit( ch ) ) {
		x = x * 10 + ch - 48;
		ch = getchar();
	}
	x *= f;
}

struct custom_hash {
    static uint64_t splitmix64( uint64_t x ) {
        x += 0x9e3779b97f4a7c15;
        x = ( x ^ ( x >> 30 ) ) * 0xbf58476d1ce4e5b9;
        x = ( x ^ ( x >> 27 ) ) * 0x94d049bb133111eb;
        return x ^ ( x >> 31 );
    }

    size_t operator() ( uint64_t x ) const {
        static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64( x + FIXED_RANDOM );
    }
};

const ll p = 1e9 +7;
const ll inv2 = 5e8 + 4;

int dis[ 210 ][ 210 ];
ll f[ 210 ][ 210 ];

ll pow_mod( ll, ll );

int main() {
	ios::sync_with_stdio( false );
	cin.tie( 0 ), cout.tie( 0 );
	int n;
	int x, y;
	cin >> n;
	memset( dis, MAX_INF, sizeof( dis ) );
	for( int i = 1; i < n; ++i ) {
		cin >> x >> y;
		dis[ x ][ y ] = dis[ y ][ x ] = 1;
	}
	for( int i = 1; i <= n; ++i )
		dis[ i ][ i ] = 0;
	for( int k = 1; k <= n; ++k )
		for( int i = 1; i <= n; ++i )
			for( int j = 1; j <= n; ++j )
				dis[ i ][ j ] = min( dis[ i ][ j ], dis[ i ][ k ] + dis[ k ][ j ] );
	for( int i = 1; i <= n; ++i )
		f[ 0 ][ i ] = 1;
	for( int i = 1; i <= n; ++i )
		for( int j = 1; j <= n; ++j )
			f[ i ][ j ] = ( f[ i - 1 ][ j ] + f[ i ][ j - 1 ] ) * inv2 % p;
	ll ans = 0;
	for( int k = 1; k <= n; ++k ) {
		for( int i = 1; i <= n; ++i ) {
			int x = dis[ i ][ k ];
			for( int j = 1; j < i; ++j ) {
				int y = dis[ j ][ k ];
				int tmp = ( x + y - dis[ i ][ j ] ) / 2;
				ans = ( ans + f[ x - tmp ][ y - tmp ] ) % p;
			}
		}
	}
	cout << ans * pow_mod( n, p - 2 ) % p;
	return 0;
}

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