Interseção de dois dicionários

Escreva uma função que receba dois dicionários diferentes. Em cada um, mantenha apenas as chaves que existam em ambos os dicionários, preservando os valores originais de cada um. Retorne os dois dicionários filtrados na mesma ordem dos argumentos.

Exemplos

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

Se nenhuma chave estiver presente em ambos os dicionários, retorne dois dicionários vazios.