Preheat oven to 350 degrees F.
Cook pasta in a large pot of boiling, salted water, until al dente according to package directions (probably about 10 minutes).
Brown ground beef in a medium - large pot.
While ground beef is cooking, peel and chop onion and garlic for the next step. If you have extra time, shred cheese, chop red pepper and drain and rinse beans. Otherwise, you can do these things while the onion is cooking.
Once ground beef is browned, remove it to a plate and drain off grease. Add butter and onion to pot and cook over medium heat until onion starts to soften, about 5 minutes.
Add garlic, paprika and salt. Add flour and stir for about 1 minute.
Very slowly start to add milk. Add the first couple of tablespoons and use a wooden spoon to start to work up what is stuck to the bottom of the pot. Then add more milk a bit at a time, stirring well each time. It will get thicker and seize up at first, but then start to become more liquid. Once the mixture is fairly liquid add the rest of the milk.
Add most of the grated cheese, yogurt and cans of chopped green chilies. Stir well and remove.
In a large bowl, stir together pasta, cooked ground beef, red pepper, black beans and sauce. Mix well to make sure there are no dry spots. Pour into a 9x13 baking dish. Top with leftover shredded cheese and bake for 15 minutes (until heated through). Garnish with cilantro (optional). Serve hot.
Enjoy! :)