# [Red], 160 bytes

    func[b][loop 2[t: collect[until[parse keep rejoin
    collect[forall b[keep take b/1]][any[thru"+"change
    copy p to"+"(replace/all p".""*")]| skip]empty? b/1]]b: t]]

[Try it online!][TIO-k2vjum7f]

[Red]: http://www.red-lang.org
[TIO-k2vjum7f]: https://tio.run/##lVK7bsQgEOz9FSuqJCtxSko3@Ye0iAJz69gxAcThwtL9u@MnOpOkMLLQ7IMdZnCg6/hBVyGLuhzr3mpRSWGc8/AmYgnaGUM6it7G1givwo2gI/IQ6Mu1ttjrtQvKGKjEUoyqI6gur1IKZQcRm9AzZLpR9pOmI36AqcdNqadA3ihNl/mwZ5yxF/Ys73DrWi/p28fhfZ1TlRClHCcaUroB01qCGkTB@LRw3tiCcQlWvC6W9@Aa/erZ8yBB@NDauLBI2HBdFH@z74zItygx4pY/MCKeZ8FMya6V44wQj5r3HG5o/rLqMue80gfmNBHnO2C6IR484Dlz7vdZHx4eDpPnSVL6BxJVDvB/58cf "Red – Try It Online"