Use statically analyzable requires

For #32. I've tried to keep to the existing style in maintaining the requires as data. We can potentially nest the object with `name`, `method` if you don't like the `split('-')` approach I'm using for extracting the name.

Thanks for consideration.