Blend onions, garlic, lemongrass, and ginger with 2 tablespoons of water until fine. Pour mixture into a bowl. Mix in curry powder to form a thick paste.
Heat vegetable oil in a large pot. Stir fry spice paste over medium heat until fragrant, about 5 minutes. Add chicken and stir till chicken turns opaque, about 3 minutes.
Add pandan leaves and pour in 7 cups (1.7 liters) of water. Bring to a boil. Reduce heat and allow it to simmer for 20 minutes.
In the meantime, fill a separate pot half full of water. Bring to a boil. Scald bean sprouts for about 20 seconds. Remove with a metal strainer.
Add noodles and cook according to packaging instructions. Remove with metal strainer.
Remove chicken with tongs. When cool enough to handle, shred meat and discard bones.
Lower shrimps into curry soup with a metal strainer. Allow shrimps to cook for 3 to 4 minutes until shrimps curl and turn pink. Remove and set aside.
Pour coconut milk into soup.
Add deep fried tofu and season with salt. Bring it up to a boil and allow coconut milk to be heated through. Turn off heat.
Place a portion of noodles and bean sprouts in a bowl. Pour curry soup over noodles and vegetables. Top with shredded chicken meat, shrimps, cucumber, mint leaves, and sambal. Squeeze some lime over noodles if desired.