What is an idiomatic way to map keys to a matching list of lists? An example - given:

```
val s = listOf(1, 9)
val u = listOf(listOf(1, 2, 3), listOf(1, 4, 7), listOf(1, 5, 9))

```

I would like to have a `Map<Int, List<List<Int>>>` such that every key in `s` is mapped to a list of lists containing that key: 

```
{1=[ [1, 2, 3], [1, 4, 7], [1, 5, 9] ], 9=[ [1, 5, 9] ]}   

```

The following:

```
s.groupBy({ it }, { x -> u.filter { it.contains(x) } })

```

produces:

```
{1=[[[1, 2, 3], [1, 4, 7], [1, 5, 9]]], 9=[[[1, 5, 9]]]}         

```

which is not quite right and it isn't clear how to flatten the result to the expected shape.