Tell me about solving a complex Python challenge within a strict 60-minute timeframe.
Implement minimum_cost_route(graph, start, end, max_hops), where graph is a map from node strings to arrays of [neighbor, cost] pairs. Return the minimum total cost from start to end using at most max_hops directed edges, or -1 when no such route exists. Edge costs may be negative, but the hop limit is finite.
def minimum_cost_route(graph, start, end, max_hops):