How to find relationship between two nodes?

In brief, below feature is fully expected:
MATCH (martin:Person { name: ‘aa’ }),(oliver:Person { name: ‘bb’ }), p = shortestPath((martin)-[*…6]-(oliver))
RETURN p
it will return shortest paths between all persons whose name are “aa” or “bb”。 Not only one person has the name “aa”, it is usual that multiple persons have same name in some countries.

As to find all predicates on shortest path between 2 nodes, I think faked known edge will work, but not sure the performance is ok. I will try it later.