We present an oblivious pattern formation algorithm for anonymous mobile robots in the asynchronous model. The robots obeying the algorithm, starting from any initial configuration I, always form a given pattern F, if I and F do not contain multiplicities and ρ(I) divides ρ(F), where ρ(·) denotes the geometric symmetricity. Our algorithm substantially outdoes an algorithm by Dieudonné et al. proposed in DISC 2010, which is dedicated to ρ(I) = 1. Our algorithm is best possible (as long as I and F do not contain multiplicities), since there is no algorithm that always forms F from I when ρ(F) is not divisible by ρ(I). All known pattern formation algorithms are constructed from scratch. We instead use a bipartite matching algorithm (between the robots and the points in F) we proposed in OPODIS 2011 as a core subroutine, to make the description of algorithm concise and easy to understand.