[eluser]mddd[/eluser]
Given your routes, if any of those routes is matched, the home controller should not be called but the controller that the route points to.
I do see a few errors, like this:
Code:
* Basket */
$route['basket'] = "basket/basket";
$route['basket/(:any)'] = "basket/basket/$1";
$route['basket/delete'] = "basket/basket/delete_basket";
In this case, basket/delete is never matched because if the url is /basket/delete, the second rule will match! So the third will never take effect.