Air Space Intelligence's Flyways platform models airspace connections as a directed graph. Given the graph and two node identifiers, use breadth-first search to return the route with the fewest connections between the start and destination nodes.
Implement shortest_route(graph, start, destination), where graph is a dictionary mapping each node identifier to a list of directly reachable node identifiers. Return a list containing the nodes in the shortest route, including both start and destination. If the destination cannot be reached, return an empty list. If start equals destination, return a list containing that node.
The graph may contain cycles. Do not revisit a node after it has been discovered. If multiple shortest routes exist, returning any one of them is valid.
def shortest_route(graph, start, destination):