Pues tiene todo el sentido, si haces return se sale del bucle y sólo te regresa lo que le indicas.
Si sólo devuelves un valor entonces eso explicaría porque no recibes los dos.
Lo correcto sería almacenar en un arreglo las coincidencias dentro del bucle cuando sean correctas, y al finalizar el bucle devolver la colección de las mismas.