#include <iostream>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <iomanip>
#include <map>
#include <cstdio>
#include <stack>
#include <set>
#include <fstream>
#include <ctime>
using namespace std;
#define endl '\n'
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<long long, long long> pll;
const int inf = 0x3f3f3f3f;
const ll lnf = 0x3f3f3f3f3f3f3f3f;
const double pi = acos(-1.0);
ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
ll lcm(ll a, ll b) { return a / gcd(a, b) * b; }
#define re(i, a, b) for (int i = a; i <= b; i++)
#define rre(i, a) for (int i = 0; i < a; i++)
#define bug system("pause")
const double eps = 1e-6;
const int N = 1e5 + 10;
const int M = 2e5 + 10;
const int mod = 1e9 + 7;

vector<int> g[210];
int n;
ll dp[210][210];
int fa[210][210], dep[210];
ll ans = 0, invn, inv2;

ll power(ll a, ll b)
{
    ll ans = 1;
    for (; b; b >>= 1, a = a * a % mod)
        if (b & 1)
            ans = ans * a % mod;
    return ans;
}

void dfs(int x, int p)
{
    dep[x] = dep[p] + 1;
    for (auto y : g[x])
    {
        if (y == p)
            continue;
        fa[y][0] = x;
        for (int j = 1; j <= 8; j++)
            fa[y][j] = fa[fa[y][j - 1]][j - 1];
        dfs(y, x);
    }
}

int lca(int x, int y)
{
    if (dep[x] < dep[y])
        swap(x, y);
    for (int i = dep[x] - dep[y], j = 0; i != 0; i >>= 1, j++)
        if (i & 1)
            x = fa[x][j];
    if (x == y)
        return x;
    for (int i = 8; i >= 0; i--)
    {
        if (fa[x][i] == fa[y][i])
            continue;
        x = fa[x][i];
        y = fa[y][i];
    }
    return fa[x][0];
}

void solve(int u)
{
    memset(dep, 0, sizeof dep);
    memset(fa, 0, sizeof fa);
    dfs(u, 0);
    for (int i = 1; i <= n; i++) 
        for (int j = 1; j < i; j++) 
        {
            int k = lca(i, j);
            if (k == i) 
                ans = (ans + invn) % mod;
            else if (k == j) {}
            else 
                ans = (ans + invn * dp[dep[i] - dep[k]][dep[j] - dep[k]] % mod) % mod;
        }
}

int main()
{
    IOS;
    cin >> n;
    inv2 = power(2, mod - 2), invn = power(n, mod - 2);
    for (int i = 0; i <= n; i++)
        dp[0][i] = 1;
    for (int i = 1; i <= n; i++) 
        for (int j = 1; j <= n; j++) 
            dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) * inv2 % mod;
    for (int i = 1; i < n; i++)
    {
        int x, y;
        cin >> x >> y;
        g[x].push_back(y);
        g[y].push_back(x);
    }
    for (int i = 1; i <= n; i++)
        solve(i);
    cout << ans << endl;
    return 0;
}