What about a templated module?
module test(bool option1, T);
Imported like this:
import test!(true, Foo);
It could act like the entire module was wrapped in a template,
and the import would become:
import test;
mixin test.test_template!(true, Foo);