input: Write a python function to find the maximum sum route from start to end in a tree represented as a dictionary.
  assert max_sum_route({'A':8, 'B':11, 'C':7}, 'A', 'C') == 23
  assert max_sum_route({'A':5, 'B':10, 'C':15, 'D':20}, 'A', 'D') == 40
  assert max_sum_route({'A':2, 'B':4, 'C':6, 'D':8, 'E':10}, 'A', 'E') == 30
output: def max_sum_route(tree, start, end):
      def dfs(node, current_sum):
          if node not in tree:
              return 0
          current_sum += tree[node]
          if node == end:
              return current_sum
          max_sum = 0
          for child in tree:
              if child != node:  # Avoid revisiting the same node
                  max_sum = max(max_sum, dfs(child, current_sum))
          return max_sum
  
      return dfs(start, 0)