diff --git a/features.api.php b/features.api.php
index b613726..2f6fcf6 100644
--- a/features.api.php
+++ b/features.api.php
@@ -237,7 +237,29 @@ function hook_features_export_alter(&$export, $module_name) {
  *   By reference. An array of all components to be exported with a given
  *   feature.
  */
-function hook_features_pipe_component_alter(&$pipe, $data, $export) {
+function hook_features_pipe_COMPONENT_alter(&$pipe, $data, $export) {
+  if (in_array($data, 'my-node-type')) {
+    $pipe['dependencies'][] = 'mymodule';
+  }
+}
+
+/**
+ * Alter the pipe array for a given component.
+ *
+ * @param array &$pipe
+ *   By reference. The pipe array of further processors that should be called.
+ * @param array $data
+ *   An array of machine names for the component in question to be exported.
+ * @param array &$export
+ *   By reference. An array of all components to be exported with a given
+ *   feature.
+ *
+ * The component being exported is contained in $export['component'].
+ */
+function hook_features_pipe_alter(&$pipe, $data, $export) {
+  if ($export['component'] == 'node' && in_array($data, 'my-node-type')) {
+    $pipe['dependencies'][] = 'mymodule';
+  }
 }
 
 /**
@@ -249,7 +271,7 @@ function hook_features_pipe_component_alter(&$pipe, $data, $export) {
  *
  * CTools also has a variety of hook_FOO_alters.
  *
- * Note: While views is a component of features, it declares it's own alter 
+ * Note: While views is a component of features, it declares it's own alter
  * function which takes a similar form:
  * hook_views_default_views_alter(&$views)
  */
@@ -264,18 +286,18 @@ function hook_field_default_fields_alter(&$fields) {
 }
 
 /**
- * Alter the default fieldgroup groups right before they are cached into the 
+ * Alter the default fieldgroup groups right before they are cached into the
  * database.
  *
  * @param &$groups
- *   By reference. The fieldgroup groups that have been declared by another 
+ *   By reference. The fieldgroup groups that have been declared by another
  *   feature.
  */
 function hook_fieldgroup_default_groups_alter(&$groups) {
 }
 
 /**
- * Alter the default filter formats right before they are cached into the 
+ * Alter the default filter formats right before they are cached into the
  * database.
  *
  * @param &$formats
diff --git a/features.export.inc b/features.export.inc
index 740a58a..8791285 100644
--- a/features.export.inc
+++ b/features.export.inc
@@ -47,8 +47,12 @@ function _features_populate($pipe, &$export, $module_name = '') {
       // Pass module-specific data and export array.
       // We don't use features_invoke() here since we need to pass $export by reference.
       $more = $function($data, $export, $module_name, $component);
+      // Add the context information.
+      $export['component'] = $component;
       // Allow other modules to manipulate the pipe to add in additional modules.
-      drupal_alter('features_pipe_' . $component, $more, $data, $export);
+      drupal_alter(array('features_pipe', 'features_pipe_' . $component), $more, $data, $export);
+      // Remove the component information.
+      unset($export['component']);
       // Allow for export functions to request additional exports.
       if (!empty($more)) {
         _features_populate($more, $export, $module_name);
diff --git a/features.module b/features.module
index c2a5c1e..a177149 100644
--- a/features.module
+++ b/features.module
@@ -513,11 +513,11 @@ function features_get_info($type = 'module', $name = NULL, $reset = FALSE) {
     $data = array();
     $ignored = variable_get('features_ignored_orphans', array());
     $files = system_rebuild_module_data();
-    
+
     // Filter out intentionally hidden features.
     module_load_include('inc', 'features', 'features.admin');
     $files = array_filter($files, 'features_filter_hidden');
-    
+
     foreach ($files as $row) {
       // If module is no longer enabled, remove it from the ignored orphans list.
       if (in_array($row->name, $ignored, TRUE) && !$row->status) {
@@ -863,8 +863,10 @@ function features_log($message, $severity = 'status') {
  * Implements hook_hook_info().
  */
 function features_hook_info() {
-  $hooks['features_api'] = array(
-    'group' => 'features',
+  $hooks = array(
+    'features_api',
+    'features_pipe_alter',
+    'features_export_alter',
   );
-  return $hooks;
+  return array_fill_keys($hooks, array('group' => 'features'));
 }
