How to simplify / factor non-commutative symbolic expressions?

It always seems strange to me that Mathematica seems to be having difficulties with non-communicative multiplications.

I can use the horrible TensorExpand (or Distribute more powerful) to get

In: a. (B.c + c.b) // TensorExpand
Out: a.b.c + a.c.b

How can I do the opposite?

In: a.b.c + a.c.b // TensorFactorise
Out: a. (B.c + c.b)