Change Catalsyt _parse_attrs so that when sub attr handlers: 1) Can return multiple pairs of new attributes 2) Get their returned attributes passed through the correct attribute handler. e.g sub _parse_Whatever_attr { return Chained => 'foo', PathPart => 'bar' } Will now work because both new attributes are respected, and the Chained attribute is passed to _parse_Chained_attr and fixedup correctly by that.