Routes are processed in order of definition. So "/category/test" is matched by the first rule, not the second. Same is true for the second set (video/...).
The cause of the problem are the brackets. The Router will convert the named parameters to a regex group, which you place into another group with your brackets. Which causes the segment to be into the result twice.