Updated documentation
diff --git a/system/core/Router.php b/system/core/Router.php
index 0814689..b11aa9b 100644
--- a/system/core/Router.php
+++ b/system/core/Router.php
@@ -387,7 +387,7 @@
 
                     // Determine how many parameters the callback has.
                     $reflection = new ReflectionFunction($val);
-                    $param_count = count($reflection->getParameters());
+                    $param_count = $reflection->getNumberOfParameters();
 
                     // Are there more parameters than matches?
                     if($param_count > $match_count)
diff --git a/user_guide_src/source/general/routing.rst b/user_guide_src/source/general/routing.rst
index 45950fc..6bb5bdb 100644
--- a/user_guide_src/source/general/routing.rst
+++ b/user_guide_src/source/general/routing.rst
@@ -106,6 +106,16 @@
 
 You can also mix and match wildcards with regular expressions.
 
+Callbacks
+=========
+
+If you are using PHP >= 5.3 you can use callbacks in place of the normal routing
+rules to process the back-references. Example::
+
+	$route['products/([a-z]+)/edit/(\d+)'] = function($product_type, $id){
+		return "catalog/product_edit/" . strtolower($product_type) . "/" . $id;
+	};
+
 Reserved Routes
 ===============