Evaluate Words Based on "Rules" (Skeptics.SE Crossover)
Python3, 105 103 bytes
This is my first golf here so be kind =)
-2 bytes tanks to Chas Brown
lambda d,b,x,y,z:sum((x+y in i)-2*((z*b+x+y+z)[:3]in i)-(y+x in i)+2*((z*b+y+x+z)[:3]in i)for i in d)&gt;0

Takes the dictionary d as any iterator of strings; a boolean 'b' (True being after); and the three letters x,y,z as Strings;
Try it online!
Explanation: might add later