Using Routes to load Controller I love routes, but they appear limited to loading a specific template. What about loading a plugin/controller based on the route instead? Anyway to do this in craft or am I limited to .htaccess?
This is indeed possible.  You'll want to update your route to point to an array with and identify your controller path with the key action:

public function registerCpRoutes()
{
  return array(
    'pluginname/edit' =&gt; array('action' =&gt; 'pluginName/editItem'),
  );
}


In your plugin controller, you can create any number of variables you need and hand them off to your template as the second argument in the renderTemplate() method:

// PluginNameController.php
public function actionEditItem()
{
    // Create any variables you want available in your template
    $variables['variable'] = craft()-&gt;request-&gt;getSegment(3);       

    $variables['items'] = craft()-&gt;pluginName-&gt;getAllItems();

    // Load a particular template and with all of the variables you've created
    $this-&gt;renderTemplate('pluginname/_edit', $variables);
}


Check out the article How do I setup a route to point to a controller action instead of a template? on Straight Up Craft for a more in depth discussion that also goes into how to render the template from your control, hand off variables to your template, and reference multiple controllers.