Not all modules should be selectable as "targets", only user-visible ones. For example, selecting "api" or "memberlist-kv" as targets makes no sense (and actually selecting "memberlist-kv" leads to panic, since this module doesn't depend on anything, but Cortex.Run method still tries to register some routes to API -- which is not initialized).
Once we have ability to set some modules as user-visible, InitModuleServices should report available modules if incorrect module name is passed to it.
/cc @annanay25