¿Cómo enrutar 2 parámetros a un controlador?

Esto parece realmente básico pero no puedo entenderlo.

Estoy tratando de enviar más de un parámetro a un método en el controlador, como este:

http://localhost/ci/index.php/subjects/3/state

Estas son las rutas que he probado:

$route['subjects/(:num)'] = 'subjects/view/$1';
$route['subjects/(:num)/{:any}'] = 'subjects/view/$1/$2';

El método acepta 2 parámetros:

public function view($slug, $id = null){

}

pero parece que obtengo un 404. ¿Cómo puedo hacer que esto funcione? Necesito el método de visualización para aceptar siempre 1 parámetro y otros parámetros opcionales.

NOTA : Estoy incluyendo el ayudante de url.

Respuestas a la pregunta(3)

Su respuesta a la pregunta