Intersección de dos diccionarios

Escribe una función que reciba dos diccionarios diferentes. En cada uno, conserva únicamente las claves que existan en ambos diccionarios, manteniendo los valores originales de cada uno. Devuelve los dos diccionarios filtrados en el mismo orden que los argumentos.

Ejemplos

intersection(["a": 5, "b": 13, "c": 7], ["b": 5, "c": 8, "d": 91, "e": 99]) // [["b": 13, "c": 7], ["b": 5, "c": 8]]

intersection(["a": 5, "b": 13, "c": 7], ["c": 9, "d": 8]) // [["c": 7], ["c": 9]]

intersection(["a": 1, "b": 34], ["c": 9, "d": 8]) // [[:], [:]]

Notas

Si no hay claves en común, devuelve dos diccionarios vacíos.