Querying Virtual Relationships

Is there a way to create an intermediate virtual graph within a query and then query that graph further? Using apoc.create.vRelationship it is possible to create a new relationship with label "TEMP" and to return it. But I want to query paths using "TEMP", and that does not seem possible.

For instance, this should work:

MATCH (from:User)-[:SENT]->(p:Payment)-[:RECEIVED]->(to:Business), ... // matching other nodes related to p with critical data
RETURN from, to, apoc.create.vRelationship(from,'PAID',{... <various critical data>}) as rel;

But this won't work:

MATCH (root{id:$rootId}), (from:User)-[:SENT]->(p:Payment)-[:RECEIVED]->(to:Business), ... // matching other nodes related to p with critical data
WITH from, to, apoc.create.vRelationship(from,'PAID',{... <various critical data>}) as rel;
MATCH path = (root) -[:PAID*]-(to)
...