Allow more dynamic protocol patterns