WITH performs functional operations on the alias and pass the result onto later statements. Heterologous aliases will be Cartesian multiplied.
Syntax: WITH <expression> as <alias>, <expression> as <alias>, ...
Input:
Deduplicating an alias in WITH will affect its homologous aliases.
For instance, the deduplication against n2.color affects its homologous alias pnodes(path); the Cartesian multiplication against heterologous aliases n1 and list also affects color, the homologous alias of list:

UQLfind().nodes() as n1 limit 2 n(3).e()[2].n(as n2) as path with pnodes(path) as list, dedup(n2.color) as color with n1, list return n1, list, color
Sample graph: (to be used for the following examples)

Example: Find all the nodes of @account that are youngest, return their name
UQLfind().nodes({@account}) as a with min(a.age) as minAge find().nodes({@account.age == minAge}) as b return b.name
ResultLina
Analysis: The method of sorting all accounts into ascending age and return only one result might miss some results that are also the youngest.
Example: Pair nodes of @account and @movie, find 1-step paths @account-@movie, return null for those pairs that do not have any path
UQLfind().nodes({@account}) as a find().nodes({@movie}) as b with a, b optional n(a).e().n(b) as p return p{*}
ResultPepe --@rate--> Léon null --null-- null Lina --@wishlist--> Léon null --null-- null Emma --@wishlist--> Léon Emma --@rate--> Avatar