pickupman/CodeIgniter — comment on commit 15301878bd83f413cce39e7bc9a2c16774845ed8
File:  line 0
By pickupman:

Correct. Per the user guide, controllers maybe organized into subfolders named the same as themselves. In a particular cause you may have a sitemap method already in an existing controller let's call it site.php. You may have the site controller set as your 'default_controller'.

$route['default_controller'] = 'site';
$route['404_overrride'] = 'site/sitemap';

If you already had the controller in the folder structure as /application/controllers/site/site.php, the 404 override will not work because the Router only looks for the controller in /application/controllers/ and not in the subfolder as allowed by any other controller mapping.