plugin.require support

Closes #975