Markup rules like {a}+ -> ... {b}+ produce spurious replacements (from the transducer) when they should only replace ... with the part of the input that matched the input pattern. The attached script and output contain finite cases. Ambiguity in both input pattern and markup may be relevant, and lengths seem relevant, which is weird.
HFST info version: 0.1
HFST packaging: hfst 3.8.3
HFST version: 3.8.3
HFST long version: 300080002
HFST configuration revision: $Revision: 4409 $
OpenFst supported
SFST supported
foma supported
Unicode support: no (hfst)
Linux c305 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Solved in r4587.