Querying over values

How could it be possible to match over values of a certain node;
For example:
MATCH (f:Family)-[:IS_PROVIDED]-(p:Provider)-[:OFFERS]-(pr:Product)-[h:HAS]-(r:Rules)
WITH f,p,r,h, pr, [x in keys(pr) WHERE toLower(x) CONTAINS toLower('aaa') OR x =~ '(?i)aaa(?i).' | pr[x]] as props
WHERE (toLower(f.name) =~ '(?i)family(?i).
' OR toLower(f.name) CONTAINS toLower('family')) AND props[0]='32' RETURN DISTINCT f.name AS Family, p.name AS Provider, pr.name as Product

From the above I query over all keys and get the products that have the value 32 (inside of one of the keys). The question is how can I still get these products but now when I do not query over keys(pr) but directly from values(pr)???