Heat oil a large skillet or cast iron over medium high heat. Once heated add ground beef, breaking it up and stirring for about a minute or so.
Next, add onions and continue cooking for about 3-5 minutes, or until onions are soft.
Add flour, thyme, garlic, tomato paste, paprika, and chili powder over browned meat and stir well to fully incorporate all the spices; cook for about 1-2 minutes.
Pour beef broth or water, milk, pasta, salt and pepper.
Bring to a boil. Cover with a lid, reduce heat and simmer for about 8-11 minutes, stirring occasionally or until the pasta is al dente or to desired doneness. It might take more or less minutes, depending on the pasta use.
Remove from the heat, sprinkle with grated cheddar cheese, if desired. Sauce will thicken as it cools down.
Garnish with freshly chopped parsley, if desired, then serve.