[eluser]CroNiX[/eluser]
Your rules are all in the wrong order.
Routes get processed from the top down and stop as soon as there is a match. Routes should be ordered from the most specific (most segments) to the least. Your catch all route, (:any) should be dead last, as it will process any route at all, so you want the specific routes before this route.
These, and the others, are backwards. The routes that have 2 segments should come before those that have one.
Code:
$route['cms'] = 'cms/CMS';
$route['cms/control_panel'] = 'cms/CMS';
//$route['cms/admin'] = 'cms/CMS/admin';
$route['cms/website_info'] = 'cms/CMS/website_info';