local mod = 1000000007
local mfl = math.floor

-- 10^9 + 7 only
-- (31623^2) % 1000000007 = 14122
local function bmul(x, y)
  local x0, y0 = x % 31623, y % 31623
  local x1, y1 = mfl(x / 31623), mfl(y / 31623)
  return (x1 * y1 * 14122 + (x1 * y0 + x0 * y1) * 31623 + x0 * y0) % mod
end

local function badd(x, y)
  return (x + y) % mod
end

local function bsub(x, y)
  return x < y and x - y + mod or x - y
end

local function modpow(src, pow)
  local res = 1
  while 0 < pow do
    if pow % 2 == 1 then
      res = bmul(res, src)
      pow = pow - 1
    end
    src = bmul(src, src)
    pow = mfl(pow / 2)
  end
  return res
end

local function modinv(src)
  return modpow(src, mod - 2)
end
local n = io.read("*n")
local edge, edgetask = {}, {}
local child = {}
local childnum = {}
local asked = {}
local parent = {}
for i = 1, n do
  edge[i] = {}
  edgetask[i] = 0
  asked[i] = false
  child[i] = {}
  childnum[i] = 0
  parent[i] = 0
end
for i = 1, n - 1 do
  local p, q = io.read("*n", "*n")
  edge[p][q], edge[q][p] = true, true
  edgetask[p] = edgetask[p] + 1
  edgetask[q] = edgetask[q] + 1
end
local tasks = {1}
for i = 2, n do
  if edgetask[i] == 1 then
    table.insert(tasks, i)
  end
end
while 0 < #tasks do
  local src = tasks[#tasks]
  table.remove(tasks)
  asked[src] = true
  local all, whites = 1, 1
  for dst, _u in pairs(edge[src]) do
    if asked[dst] then
      -- child
    else
      -- parent
      parent[src] = dst
      table.insert(child[dst], src)
      childnum[dst] = childnum[dst] + 1 + childnum[src]
      edgetask[dst] = edgetask[dst] - 1
      if edgetask[dst] == 1 and dst ~= 1 then
        table.insert(tasks, dst)
      end
    end
  end
end
local p2 = {2}
for i = 2, n do
  p2[i] = (p2[i - 1] * 2) % mod
end
local totcnt = 0
for i = 1, n do
  -- print(i, table.concat(child[i], " "))
  local ccnts = {}
  local ccntsum = 0
  for j = 1, #child[i] do
    local c = child[i][j]
    ccnts[j] = 1 + #child[c]
    ccntsum = ccntsum + ccnts[j]
  end
  if i ~= 1 then
    local rem = n - (1 + childnum[i])
    table.insert(ccnts, rem)
    ccntsum = ccntsum + ccnts[#ccnts]
  end
  if 2 <= #ccnts then
    local add = p2[ccntsum]
    for j = 1, #ccnts do
      add = bsub(add, p2[ccnts[j]])
    end
    add = badd(add, #ccnts - 1)
    totcnt = badd(totcnt, add)
  end
end
local denom = modinv(p2[n])
print(bmul(denom, totcnt))
