Implement a solution for a graph-based traversal or path-finding challenge relevant to Via Transportation routing or dispatch.
Given directed weighted edges, return the minimum total cost and the corresponding route from start to destination. Return [-1, []] when the destination is unreachable. Implement shortest_route(edges, start, destination), where edges is a list of [from_node, to_node, cost] entries and node identifiers are strings. Edge costs are nonnegative, and a route may contain each node at most once.
def shortest_route(edges, start, destination):