MrBayes can do this, though I haven't tried it and I don't know about the details of the implementation.
Would it make sense to have two matrices sharing a parameter? For instance:
Ordered:
* a 0 0 0
a * a 0 0
0 a * a 0
0 0 a * a
0 0 0 a *
Unordered:
* a a a a
a * a a a
a a * a a
a a a * a
a a a a *
Maybe in that case an asymmetric ordered model could be implemented without the need of an extra rate parameter by fixing one rate to 1:
Ordered, asymmetric:
* a 0 0 0
1 * a 0 0
0 1 * a 0
0 0 1 * a
0 0 0 1 *
Cheers,
Eduardo