Это может быть проблематично, рассмотрим:
$route['(:any)'] = 'blog/post/$1';
$route['(:any)/(:any)'] = 'blog/post_category/$1/$2';
-
$route['(:any)'] = 'category/$1';
Блог / сообщение будет иметь приоритет здесь, поэтому соглашения об именах становятся проблемой / или нет
Структурируйте ссылки заранее, я бы предложил
public function post_category($type, $post_name){}