adding DenyUnlessPermit and PermitUnlessDeny algorithms