add dynamic path matching callback support